Skip to content

Commit

Permalink
feat: updated power tooltips with more colors
Browse files Browse the repository at this point in the history
  • Loading branch information
GoryMoon committed Jan 2, 2025
1 parent 5302196 commit c10ca04
Show file tree
Hide file tree
Showing 8 changed files with 55 additions and 43 deletions.
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
// 1.21.1 2024-12-31T14:03:16.750534933 Languages: en_us for mod: chargers
8ff9f0a596be294cd17215c3e52b69ce7b417824 assets/chargers/lang/en_us.json
// 1.21.1 2025-01-02T18:06:32.421853043 Languages: en_us for mod: chargers
2824ee86f3931fa37fe7f675ca3759db8c122e82 assets/chargers/lang/en_us.json
19 changes: 9 additions & 10 deletions src/generated/resources/assets/chargers/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
"block.chargers.wireless_charger": "Wireless Charger",
"chargers.chat.disabled": "Disabled",
"chargers.chat.enabled": "Enabled",
"chargers.chat.stored.infinite.info": "Power: ∞ FE",
"chargers.chat.stored.info": "Power: %s/%s FE",
"chargers.chat.wireless_charger.info": "Status: %s, Power: %s/%s FE",
"chargers.chat.stored.infinite.info": "Power: ∞ %s",
"chargers.chat.stored.info": "Power: %s",
"chargers.chat.wireless_charger.info": "Status: %s, Power: %s",
"chargers.configuration.chargers": "Chargers",
"chargers.configuration.compat": "Compatability",
"chargers.configuration.curios_compat": "Curios",
Expand All @@ -22,14 +22,13 @@
"chargers.configuration.tier_3": "Charger Tier 3",
"chargers.configuration.tier_4": "Charger Tier 4",
"chargers.configuration.wireless": "Wireless Charger",
"chargers.gui.details.in": "In: %s FE/t",
"chargers.gui.details.out": "Out: %s FE/t",
"chargers.gui.energy": "%s/%s FE",
"chargers.gui.energy.infinite": "∞ FE",
"chargers.gui.io": "I/O: %s FE/t",
"chargers.gui.details.in": "In: %s",
"chargers.gui.details.out": "Out: %s",
"chargers.gui.energy.infinite": "∞ %s",
"chargers.gui.io": "I/O: %s",
"chargers.gui.io.more": "Hold shift for more I/O details",
"chargers.gui.max_in": "Max In: %s FE/t",
"chargers.gui.max_out": "Max Out: %s FE/t",
"chargers.gui.max_in": "Max In: %s",
"chargers.gui.max_out": "Max Out: %s",
"chargers.tooltip.wireless_charger": "Can be disabled with redstone power",
"itemGroup.chargers.chargers": "Chargers",
"pack.chargers.description": "Chargers mod resources"
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/se/gory_moon/chargers/LangKeys.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ public enum LangKeys {
CHAT_STORED_INFO("chat.stored.info"),
CHAT_STORED_INFINITE_INFO("chat.stored.infinite.info"),

GUI_ENERGY("gui.energy"),

GUI_ENERGY_INFINITE("gui.energy.infinite"),
GUI_MAX_IN("gui.max_in"),
GUI_MAX_OUT("gui.max_out"),
Expand Down
31 changes: 22 additions & 9 deletions src/main/java/se/gory_moon/chargers/Utils.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package se.gory_moon.chargers;

import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.ItemStack;
import net.neoforged.neoforge.capabilities.Capabilities;
import net.neoforged.neoforge.energy.IEnergyStorage;
import se.gory_moon.chargers.power.CustomEnergyStorage;

import java.text.NumberFormat;
import java.text.DecimalFormat;
import java.util.List;

public class Utils {
Expand All @@ -16,22 +17,34 @@ public static String clean(String in) {
}

public static String formatAndClean(long number) {
return clean(NumberFormat.getInstance().format(number));
return clean(new DecimalFormat().format(number));
}

public static Component formatEnergy(long energy) {
return Component.literal(formatAndClean(energy) + ChatFormatting.DARK_AQUA + " FE");
}

public static String formatEnergyPerTick(long energy) {
return ChatFormatting.WHITE + formatAndClean(energy) + ChatFormatting.DARK_AQUA + " FE" + ChatFormatting.GOLD + "/" + ChatFormatting.DARK_AQUA + "t";
}

public static Component formatFilledCapacity(long amount, long capacity) {
return Component.literal(ChatFormatting.WHITE + formatAndClean(amount) + ChatFormatting.GOLD + "/" + ChatFormatting.WHITE + formatAndClean(capacity) + ChatFormatting.DARK_AQUA + " FE");
}

public static void addEnergyTooltip(ItemStack stack, List<Component> tooltip) {
IEnergyStorage energyStorage = stack.getCapability(Capabilities.EnergyStorage.ITEM);
if (energyStorage != null) {
String stored;
String max;
long stored;
long max;
if (energyStorage instanceof CustomEnergyStorage storage) {
stored = formatAndClean(storage.getLongEnergyStored());
max = formatAndClean(storage.getLongMaxEnergyStored());
stored = storage.getLongEnergyStored();
max = storage.getLongMaxEnergyStored();
} else {
stored = formatAndClean(energyStorage.getEnergyStored());
max = formatAndClean(energyStorage.getMaxEnergyStored());
stored = energyStorage.getEnergyStored();
max = energyStorage.getMaxEnergyStored();
}
tooltip.add(Component.translatable(LangKeys.CHAT_STORED_INFO.key(), stored, max));
tooltip.add(Component.translatable(LangKeys.CHAT_STORED_INFO.key(), formatFilledCapacity(stored, max)).withStyle(ChatFormatting.GOLD));
}
}
}
3 changes: 2 additions & 1 deletion src/main/java/se/gory_moon/chargers/block/ChargerBlock.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.mojang.serialization.Codec;
import com.mojang.serialization.MapCodec;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer;
Expand Down Expand Up @@ -73,7 +74,7 @@ public void onRemove(@NotNull BlockState state, Level level, @NotNull BlockPos p
public void appendHoverText(@NotNull ItemStack stack, @NotNull Item.TooltipContext context, @NotNull List<Component> tooltip, @NotNull TooltipFlag tooltipFlag) {
Tier tier = getTier();
if (tier.isCreative())
tooltip.add(Component.translatable(LangKeys.CHAT_STORED_INFINITE_INFO.key()));
tooltip.add(Component.translatable(LangKeys.CHAT_STORED_INFINITE_INFO.key(), ChatFormatting.DARK_AQUA + "FE").withStyle(ChatFormatting.GOLD));
else
Utils.addEnergyTooltip(stack, tooltip);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ public WirelessChargerBlock(Block.Properties properties) {
var storage = changerEntity.getStorage();
var text = Component.translatable(LangKeys.CHAT_WIRELESS_CHARGER_INFO.key(),
status,
Utils.formatAndClean(storage.getLongEnergyStored()),
Utils.formatAndClean(storage.getLongMaxEnergyStored()));
Utils.formatFilledCapacity(storage.getLongEnergyStored(), storage.getLongMaxEnergyStored()))
.withStyle(ChatFormatting.GOLD);
player.displayClientMessage(text, true);
}

Expand Down
14 changes: 7 additions & 7 deletions src/main/java/se/gory_moon/chargers/client/ChargerScreen.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,20 +41,20 @@ public void render(@NotNull GuiGraphics graphics, int pMouseX, int pMouseY, floa
if (pMouseX >= leftPos + 44 && pMouseX <= leftPos + 44 + 16 && pMouseY >= topPos + 14 && pMouseY <= topPos + 84) {
List<Component> list = new ArrayList<>();
if (menu.isCreative())
list.add(Component.translatable(LangKeys.GUI_ENERGY_INFINITE.key()));
list.add(Component.translatable(LangKeys.GUI_ENERGY_INFINITE.key(), ChatFormatting.DARK_AQUA + "FE"));
else
list.add(Component.translatable(LangKeys.GUI_ENERGY.key(), Utils.formatAndClean(menu.getEnergy()), Utils.formatAndClean(menu.getEnergyMax()) + ChatFormatting.GRAY));
list.add(Utils.formatFilledCapacity(menu.getEnergy(), menu.getEnergyMax()));

list.add(Component.translatable(LangKeys.GUI_MAX_IN.key(), Utils.formatAndClean(menu.getMaxIn()) + ChatFormatting.GRAY));
list.add(Component.translatable(LangKeys.GUI_MAX_OUT.key(), Utils.formatAndClean(menu.getMaxOut()) + ChatFormatting.GRAY));
list.add(Component.translatable(LangKeys.GUI_MAX_IN.key(), Utils.formatEnergyPerTick(menu.getMaxIn())).withStyle(ChatFormatting.GOLD));
list.add(Component.translatable(LangKeys.GUI_MAX_OUT.key(), Utils.formatEnergyPerTick(menu.getMaxOut())).withStyle(ChatFormatting.GOLD));

if (menu.getAverageIn() > 0 || menu.getAverageOut() > 0) {
if (hasShiftDown()) {
list.add(Component.translatable(LangKeys.GUI_DETAILS_IN.key(), ChatFormatting.GREEN + "+" + Utils.formatAndClean(menu.getAverageIn()) + ChatFormatting.GRAY));
list.add(Component.translatable(LangKeys.GUI_DETAILS_OUT.key(), ChatFormatting.RED + "-" + Utils.formatAndClean(menu.getAverageOut()) + ChatFormatting.GRAY));
list.add(Component.translatable(LangKeys.GUI_DETAILS_IN.key(), ChatFormatting.GREEN + "+" + Utils.formatEnergyPerTick(menu.getAverageIn()) + ChatFormatting.GRAY).withStyle(ChatFormatting.GOLD));
list.add(Component.translatable(LangKeys.GUI_DETAILS_OUT.key(), ChatFormatting.RED + "-" + Utils.formatEnergyPerTick(menu.getAverageOut()) + ChatFormatting.GRAY).withStyle(ChatFormatting.GOLD));
} else {
if (menu.getEnergyDiff() != 0)
list.add(Component.translatable(LangKeys.GUI_IO.key(), (menu.getEnergyDiff() > 0 ? ChatFormatting.GREEN + "+" : ChatFormatting.RED.toString()) + Utils.formatAndClean(menu.getEnergyDiff()) + ChatFormatting.GRAY));
list.add(Component.translatable(LangKeys.GUI_IO.key(), (menu.getEnergyDiff() > 0 ? ChatFormatting.GREEN + "+" : ChatFormatting.RED.toString()) + Utils.formatEnergyPerTick(menu.getEnergyDiff()) + ChatFormatting.GRAY).withStyle(ChatFormatting.GOLD));
list.add(Component.translatable(LangKeys.GUI_IO_MORE.key()).setStyle(Style.EMPTY.withColor(ChatFormatting.GRAY)));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,20 +39,19 @@ protected void addTranslations() {
add(LangKeys.CONFIG_TIER_3, "Charger Tier 3");
add(LangKeys.CONFIG_TIER_4, "Charger Tier 4");

add(LangKeys.CHAT_WIRELESS_CHARGER_INFO, "Status: %s, Power: %s/%s FE");
add(LangKeys.CHAT_WIRELESS_CHARGER_INFO, "Status: %s, Power: %s");
add(LangKeys.CHAT_ENABLED, "Enabled");
add(LangKeys.CHAT_DISABLED, "Disabled");
add(LangKeys.CHAT_STORED_INFO, "Power: %s/%s FE");
add(LangKeys.CHAT_STORED_INFINITE_INFO, "Power: ∞ FE");

add(LangKeys.GUI_ENERGY, "%s/%s FE");
add(LangKeys.GUI_ENERGY_INFINITE, "∞ FE");
add(LangKeys.GUI_MAX_IN, "Max In: %s FE/t");
add(LangKeys.GUI_MAX_OUT, "Max Out: %s FE/t");
add(LangKeys.GUI_IO, "I/O: %s FE/t");
add(LangKeys.CHAT_STORED_INFO, "Power: %s");
add(LangKeys.CHAT_STORED_INFINITE_INFO, "Power: ∞ %s");

add(LangKeys.GUI_ENERGY_INFINITE, "∞ %s");
add(LangKeys.GUI_MAX_IN, "Max In: %s");
add(LangKeys.GUI_MAX_OUT, "Max Out: %s");
add(LangKeys.GUI_IO, "I/O: %s");
add(LangKeys.GUI_IO_MORE, "Hold shift for more I/O details");
add(LangKeys.GUI_DETAILS_IN, "In: %s FE/t");
add(LangKeys.GUI_DETAILS_OUT, "Out: %s FE/t");
add(LangKeys.GUI_DETAILS_IN, "In: %s");
add(LangKeys.GUI_DETAILS_OUT, "Out: %s");
}

private void add(LangKeys key, String text) {
Expand Down

0 comments on commit c10ca04

Please sign in to comment.