From b24e05472149843386128c3adb8a7e68a16d1bb2 Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Tue, 9 Jan 2018 20:25:02 +0100 Subject: [PATCH] Move quantity formatter to API, fixes #1608 --- .../refinedstorage/api/IRSAPI.java | 9 ++++ .../api/util/IQuantityFormatter.java | 27 +++++++++++ .../refinedstorage/apiimpl/API.java | 11 +++++ .../CraftingMonitorElementFluidRender.java | 2 +- .../ReaderWriterHandlerFluids.java | 4 +- .../apiimpl/util/QuantityFormatter.java | 45 +++++++++++++++++++ .../refinedstorage/gui/GuiStorage.java | 10 ++--- .../gui/grid/stack/GridStackFluid.java | 6 +-- .../gui/grid/stack/GridStackItem.java | 6 +-- .../item/ItemBlockFluidStorage.java | 6 +-- .../refinedstorage/item/ItemBlockStorage.java | 6 +-- .../item/ItemFluidStorageDisk.java | 5 +-- .../refinedstorage/item/ItemStorageDisk.java | 5 +-- ...leEntitySpecialRendererStorageMonitor.java | 4 +- .../refinedstorage/util/RenderUtils.java | 33 -------------- 15 files changed, 118 insertions(+), 61 deletions(-) create mode 100644 src/main/java/com/raoulvdberge/refinedstorage/api/util/IQuantityFormatter.java create mode 100644 src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/QuantityFormatter.java diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java b/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java index 1b813ccef..cd50f25b4 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java @@ -15,6 +15,7 @@ import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHan import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRegistry; import com.raoulvdberge.refinedstorage.api.storage.IStorageDiskBehavior; import com.raoulvdberge.refinedstorage.api.util.IComparer; +import com.raoulvdberge.refinedstorage.api.util.IQuantityFormatter; import com.raoulvdberge.refinedstorage.api.util.IStackList; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -36,9 +37,16 @@ public interface IRSAPI { @Nonnull IComparer getComparer(); + /** + * @return the quantity formatter + */ + @Nonnull + IQuantityFormatter getQuantityFormatter(); + /** * @return the network node factory */ + @Nonnull INetworkNodeRegistry getNetworkNodeRegistry(); /** @@ -54,6 +62,7 @@ public interface IRSAPI { /** * @return the default storage disk behavior */ + @Nonnull IStorageDiskBehavior getDefaultStorageDiskBehavior(); /** diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/util/IQuantityFormatter.java b/src/main/java/com/raoulvdberge/refinedstorage/api/util/IQuantityFormatter.java new file mode 100644 index 000000000..9e8d37d2b --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/util/IQuantityFormatter.java @@ -0,0 +1,27 @@ +package com.raoulvdberge.refinedstorage.api.util; + +/** + * Utilities for formatting quantities. + */ +public interface IQuantityFormatter { + /** + * Formats a quantity as they are formatted in the Grid. + * Formatted as following: "####0.#". + *

+ * If the quantity is equal to or bigger than 1000 it will be displayed as the quantity divided by 1000 (without any decimals) and a "K" appended. + * If the quantity is equal to or bigger than 1000000 it will be displayed as the quantity divided by 1000000 (without any decimals) and a "M" appended. + * + * @param qty the quantity + * @return the formatted quantity + */ + String formatWithUnits(int qty); + + /** + * Formats a quantity as they are formatted on the disk tooltips. + * Formatted as following: "#,###". + * + * @param qty the quantity + * @return the formatted quantity + */ + String format(int qty); +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java index b7de40b60..37dc35b40 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java @@ -19,6 +19,7 @@ import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHan import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRegistry; import com.raoulvdberge.refinedstorage.api.storage.IStorageDiskBehavior; import com.raoulvdberge.refinedstorage.api.util.IComparer; +import com.raoulvdberge.refinedstorage.api.util.IQuantityFormatter; import com.raoulvdberge.refinedstorage.api.util.IStackList; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementList; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementRegistry; @@ -33,6 +34,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriter import com.raoulvdberge.refinedstorage.apiimpl.solderer.SoldererRegistry; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageDiskBehavior; import com.raoulvdberge.refinedstorage.apiimpl.util.Comparer; +import com.raoulvdberge.refinedstorage.apiimpl.util.QuantityFormatter; import com.raoulvdberge.refinedstorage.apiimpl.util.StackListFluid; import com.raoulvdberge.refinedstorage.apiimpl.util.StackListItem; import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy; @@ -58,6 +60,7 @@ public class API implements IRSAPI { private static final IRSAPI INSTANCE = new API(); private IComparer comparer = new Comparer(); + private IQuantityFormatter quantityFormatter = new QuantityFormatter(); private INetworkNodeRegistry networkNodeRegistry = new NetworkNodeRegistry(); private IStorageDiskBehavior storageDiskBehavior = new StorageDiskBehavior(); private ISoldererRegistry soldererRegistry = new SoldererRegistry(); @@ -97,6 +100,13 @@ public class API implements IRSAPI { } @Override + @Nonnull + public IQuantityFormatter getQuantityFormatter() { + return quantityFormatter; + } + + @Override + @Nonnull public INetworkNodeRegistry getNetworkNodeRegistry() { return networkNodeRegistry; } @@ -122,6 +132,7 @@ public class API implements IRSAPI { } @Override + @Nonnull public IStorageDiskBehavior getDefaultStorageDiskBehavior() { return storageDiskBehavior; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementFluidRender.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementFluidRender.java index f21e12fcc..c70fef725 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementFluidRender.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementFluidRender.java @@ -34,7 +34,7 @@ public class CraftingMonitorElementFluidRender implements ICraftingMonitorElemen GlStateManager.pushMatrix(); GlStateManager.scale(scale, scale, 1); - drawers.getStringDrawer().draw(RenderUtils.getOffsetOnScale(x + 21 + offset, scale), RenderUtils.getOffsetOnScale(y + 7, scale), RenderUtils.QUANTITY_FORMATTER.format((float) stack.amount / 1000F) + "x " + stack.getLocalizedName()); + drawers.getStringDrawer().draw(RenderUtils.getOffsetOnScale(x + 21 + offset, scale), RenderUtils.getOffsetOnScale(y + 7, scale), API.instance().getQuantityFormatter().format(stack.amount) + " mB " + stack.getLocalizedName()); GlStateManager.popMatrix(); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/readerwriter/ReaderWriterHandlerFluids.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/readerwriter/ReaderWriterHandlerFluids.java index aaf8fee6e..862d22575 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/readerwriter/ReaderWriterHandlerFluids.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/readerwriter/ReaderWriterHandlerFluids.java @@ -4,7 +4,7 @@ import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReader; import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel; import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandler; import com.raoulvdberge.refinedstorage.api.network.readerwriter.IWriter; -import com.raoulvdberge.refinedstorage.util.RenderUtils; +import com.raoulvdberge.refinedstorage.apiimpl.API; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TextComponentString; @@ -102,7 +102,7 @@ public class ReaderWriterHandlerFluids implements IReaderWriterHandler { return Collections.emptyList(); } - return Collections.singletonList(new TextComponentString(RenderUtils.QUANTITY_FORMATTER.format((float) stack.amount / 1000F) + "x ").appendSibling(new TextComponentTranslation(stack.getUnlocalizedName()))); + return Collections.singletonList(new TextComponentString(API.instance().getQuantityFormatter().format(stack.amount) + " mB ").appendSibling(new TextComponentTranslation(stack.getUnlocalizedName()))); } private class FluidTankReaderWriter implements IFluidTank, IFluidHandler { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/QuantityFormatter.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/QuantityFormatter.java new file mode 100644 index 000000000..ff9e20963 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/QuantityFormatter.java @@ -0,0 +1,45 @@ +package com.raoulvdberge.refinedstorage.apiimpl.util; + +import com.raoulvdberge.refinedstorage.api.util.IQuantityFormatter; + +import java.math.RoundingMode; +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.util.Locale; + +public class QuantityFormatter implements IQuantityFormatter { + private DecimalFormat formatterWithUnits = new DecimalFormat("####0.#", DecimalFormatSymbols.getInstance(Locale.US)); + private DecimalFormat formatter = new DecimalFormat("#,###", DecimalFormatSymbols.getInstance(Locale.US)); + + public QuantityFormatter() { + formatterWithUnits.setRoundingMode(RoundingMode.DOWN); + } + + @Override + public String formatWithUnits(int qty) { + if (qty >= 1_000_000) { + float qtyShort = (float) qty / 1_000_000F; + + if (qty >= 100_000_000) { + qtyShort = Math.round(qtyShort); // XXX.XM looks weird. + } + + return formatterWithUnits.format(qtyShort) + "M"; + } else if (qty >= 1000) { + float qtyShort = (float) qty / 1000F; + + if (qty >= 100_000) { + qtyShort = Math.round(qtyShort); // XXX.XK looks weird. + } + + return formatterWithUnits.format(qtyShort) + "K"; + } + + return String.valueOf(qty); + } + + @Override + public String format(int qty) { + return formatter.format(qty); + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java index 568edb680..9c9486706 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java @@ -1,10 +1,10 @@ package com.raoulvdberge.refinedstorage.gui; import com.raoulvdberge.refinedstorage.api.util.IComparer; +import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiStorage; import com.raoulvdberge.refinedstorage.container.ContainerBase; import com.raoulvdberge.refinedstorage.gui.sidebutton.*; -import com.raoulvdberge.refinedstorage.util.RenderUtils; import net.minecraft.client.gui.GuiButton; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.fml.common.FMLCommonHandler; @@ -85,8 +85,8 @@ public class GuiStorage extends GuiBase { public void drawForeground(int mouseX, int mouseY) { drawString(7, 7, t(gui.getGuiTitle())); drawString(7, 42, gui.getCapacity() == -1 ? - t("misc.refinedstorage:storage.stored_minimal", RenderUtils.formatQuantity(gui.getStored())) : - t("misc.refinedstorage:storage.stored_capacity_minimal", RenderUtils.formatQuantity(gui.getStored()), RenderUtils.formatQuantity(gui.getCapacity())) + t("misc.refinedstorage:storage.stored_minimal", API.instance().getQuantityFormatter().formatWithUnits(gui.getStored())) : + t("misc.refinedstorage:storage.stored_capacity_minimal", API.instance().getQuantityFormatter().formatWithUnits(gui.getStored()), API.instance().getQuantityFormatter().formatWithUnits(gui.getCapacity())) ); if (texture.contains("disk_drive")) { // HACK! @@ -103,8 +103,8 @@ public class GuiStorage extends GuiBase { } drawTooltip(mouseX, mouseY, (gui.getCapacity() == -1 ? - t("misc.refinedstorage:storage.stored_minimal", RenderUtils.QUANTITY_FORMATTER_UNFORMATTED.format(gui.getStored())) : - t("misc.refinedstorage:storage.stored_capacity_minimal", RenderUtils.QUANTITY_FORMATTER_UNFORMATTED.format(gui.getStored()), RenderUtils.QUANTITY_FORMATTER_UNFORMATTED.format(gui.getCapacity())) + t("misc.refinedstorage:storage.stored_minimal", API.instance().getQuantityFormatter().format(gui.getStored())) : + t("misc.refinedstorage:storage.stored_capacity_minimal", API.instance().getQuantityFormatter().format(gui.getStored()), API.instance().getQuantityFormatter().format(gui.getCapacity())) ) + "\n" + TextFormatting.GRAY + t("misc.refinedstorage:storage.full", full)); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackFluid.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackFluid.java index 4187629b7..5598db37d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackFluid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackFluid.java @@ -1,8 +1,8 @@ package com.raoulvdberge.refinedstorage.gui.grid.stack; import com.raoulvdberge.refinedstorage.api.storage.IStorageTracker; +import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.gui.GuiBase; -import com.raoulvdberge.refinedstorage.util.RenderUtils; import net.minecraftforge.fluids.FluidStack; import org.apache.commons.lang3.tuple.Pair; @@ -56,14 +56,14 @@ public class GridStackFluid implements IGridStack { @Override public String getFormattedFullQuantity() { - return RenderUtils.QUANTITY_FORMATTER_UNFORMATTED.format(getQuantity()) + " mB"; + return API.instance().getQuantityFormatter().format(getQuantity()) + " mB"; } @Override public void draw(GuiBase gui, int x, int y) { GuiBase.FLUID_RENDERER.draw(gui.mc, x, y, stack); - gui.drawQuantity(x, y, RenderUtils.formatQuantity((int) ((float) stack.amount / 1000F))); + gui.drawQuantity(x, y, API.instance().getQuantityFormatter().formatWithUnits((int) ((float) stack.amount / 1000F))); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackItem.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackItem.java index 765e9b014..f4f669f6e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackItem.java @@ -1,9 +1,9 @@ package com.raoulvdberge.refinedstorage.gui.grid.stack; import com.raoulvdberge.refinedstorage.api.storage.IStorageTracker; +import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageTrackerEntry; import com.raoulvdberge.refinedstorage.gui.GuiBase; -import com.raoulvdberge.refinedstorage.util.RenderUtils; import com.raoulvdberge.refinedstorage.util.StackUtils; import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; @@ -119,7 +119,7 @@ public class GridStackItem implements IGridStack { @Override public String getFormattedFullQuantity() { - return RenderUtils.QUANTITY_FORMATTER_UNFORMATTED.format(getQuantity()); + return API.instance().getQuantityFormatter().format(getQuantity()); } @Override @@ -129,7 +129,7 @@ public class GridStackItem implements IGridStack { if (displayCraftText) { text = I18n.format("gui.refinedstorage:grid.craft"); } else if (stack.getCount() > 1) { - text = RenderUtils.formatQuantity(stack.getCount()); + text = API.instance().getQuantityFormatter().formatWithUnits(getQuantity()); } gui.drawItem(x, y, stack, true, text); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockFluidStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockFluidStorage.java index 26bc4c2fb..6770fe831 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockFluidStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockFluidStorage.java @@ -2,10 +2,10 @@ package com.raoulvdberge.refinedstorage.item; import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSItems; +import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeFluidStorage; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageDiskFluid; import com.raoulvdberge.refinedstorage.block.FluidStorageType; -import com.raoulvdberge.refinedstorage.util.RenderUtils; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; @@ -36,9 +36,9 @@ public class ItemBlockFluidStorage extends ItemBlockBase { NBTTagCompound tag = stack.getTagCompound().getCompoundTag(NetworkNodeFluidStorage.NBT_STORAGE); if (type == FluidStorageType.TYPE_CREATIVE) { - tooltip.add(I18n.format("misc.refinedstorage:storage.stored", RenderUtils.QUANTITY_FORMATTER_UNFORMATTED.format(StorageDiskFluid.getStored(tag)))); + tooltip.add(I18n.format("misc.refinedstorage:storage.stored", API.instance().getQuantityFormatter().format(StorageDiskFluid.getStored(tag)))); } else { - tooltip.add(I18n.format("misc.refinedstorage:storage.stored_capacity", RenderUtils.QUANTITY_FORMATTER_UNFORMATTED.format(StorageDiskFluid.getStored(tag)), RenderUtils.QUANTITY_FORMATTER_UNFORMATTED.format(type.getCapacity()))); + tooltip.add(I18n.format("misc.refinedstorage:storage.stored_capacity", API.instance().getQuantityFormatter().format(StorageDiskFluid.getStored(tag)), API.instance().getQuantityFormatter().format(type.getCapacity()))); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockStorage.java index e6371035c..f58862fc1 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockStorage.java @@ -2,10 +2,10 @@ package com.raoulvdberge.refinedstorage.item; import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSItems; +import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeStorage; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageDiskItem; import com.raoulvdberge.refinedstorage.block.ItemStorageType; -import com.raoulvdberge.refinedstorage.util.RenderUtils; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; @@ -36,9 +36,9 @@ public class ItemBlockStorage extends ItemBlockBase { NBTTagCompound tag = stack.getTagCompound().getCompoundTag(NetworkNodeStorage.NBT_STORAGE); if (type == ItemStorageType.TYPE_CREATIVE) { - tooltip.add(I18n.format("misc.refinedstorage:storage.stored", RenderUtils.QUANTITY_FORMATTER_UNFORMATTED.format(StorageDiskItem.getStored(tag)))); + tooltip.add(I18n.format("misc.refinedstorage:storage.stored", API.instance().getQuantityFormatter().format(StorageDiskItem.getStored(tag)))); } else { - tooltip.add(I18n.format("misc.refinedstorage:storage.stored_capacity", RenderUtils.QUANTITY_FORMATTER_UNFORMATTED.format(StorageDiskItem.getStored(tag)), RenderUtils.QUANTITY_FORMATTER_UNFORMATTED.format(type.getCapacity()))); + tooltip.add(I18n.format("misc.refinedstorage:storage.stored_capacity", API.instance().getQuantityFormatter().format(StorageDiskItem.getStored(tag)), API.instance().getQuantityFormatter().format(type.getCapacity()))); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java index 6c60975de..faaf66077 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java @@ -7,7 +7,6 @@ import com.raoulvdberge.refinedstorage.api.storage.StorageDiskType; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageDiskFluid; import com.raoulvdberge.refinedstorage.block.FluidStorageType; -import com.raoulvdberge.refinedstorage.util.RenderUtils; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; @@ -110,9 +109,9 @@ public class ItemFluidStorageDisk extends ItemBase implements IStorageDiskProvid if (storage.isValid(stack)) { if (storage.getCapacity() == -1) { - tooltip.add(I18n.format("misc.refinedstorage:storage.stored", RenderUtils.QUANTITY_FORMATTER_UNFORMATTED.format(storage.getStored()))); + tooltip.add(I18n.format("misc.refinedstorage:storage.stored", API.instance().getQuantityFormatter().format(storage.getStored()))); } else { - tooltip.add(I18n.format("misc.refinedstorage:storage.stored_capacity", RenderUtils.QUANTITY_FORMATTER_UNFORMATTED.format(storage.getStored()), RenderUtils.QUANTITY_FORMATTER_UNFORMATTED.format(storage.getCapacity()))); + tooltip.add(I18n.format("misc.refinedstorage:storage.stored_capacity", API.instance().getQuantityFormatter().format(storage.getStored()), API.instance().getQuantityFormatter().format(storage.getCapacity()))); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java index 7357cd095..62896b439 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java @@ -7,7 +7,6 @@ import com.raoulvdberge.refinedstorage.api.storage.StorageDiskType; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageDiskItem; import com.raoulvdberge.refinedstorage.block.ItemStorageType; -import com.raoulvdberge.refinedstorage.util.RenderUtils; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; @@ -102,9 +101,9 @@ public class ItemStorageDisk extends ItemBase implements IStorageDiskProvider DEFAULT_ITEM_TRANSFORM; private static ImmutableMap DEFAULT_BLOCK_TRANSFORM; - static { - QUANTITY_FORMATTER.setRoundingMode(RoundingMode.DOWN); - } - - public static String formatQuantity(int qty) { - if (qty >= 1_000_000) { - float qtyShort = (float) qty / 1_000_000F; - - if (qty >= 100_000_000) { - qtyShort = Math.round(qtyShort); // XXX.XM looks weird. - } - - return QUANTITY_FORMATTER.format(qtyShort) + "M"; - } else if (qty >= 1000) { - float qtyShort = (float) qty / 1000F; - - if (qty >= 100_000) { - qtyShort = Math.round(qtyShort); // XXX.XK looks weird. - } - - return QUANTITY_FORMATTER.format(qtyShort) + "K"; - } - - return String.valueOf(qty); - } - public static AxisAlignedBB getBounds(int fromX, int fromY, int fromZ, int toX, int toY, int toZ) { return new AxisAlignedBB((float) fromX / 16F, (float) fromY / 16F, (float) fromZ / 16F, (float) toX / 16F, (float) toY / 16F, (float) toZ / 16F); }