Added translation for upgrades
This commit is contained in:
parent
f5107cacd0
commit
3645c156be
3 changed files with 23 additions and 30 deletions
|
@ -25,7 +25,7 @@
|
|||
package techreborn.events;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import net.fabricmc.fabric.api.event.client.ItemTooltipCallback;
|
||||
import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockEntityProvider;
|
||||
import net.minecraft.block.entity.BlockEntity;
|
||||
|
@ -37,7 +37,6 @@ import net.minecraft.item.ItemStack;
|
|||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.text.TranslatableText;
|
||||
import net.minecraft.util.Formatting;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import reborncore.api.IListInfoProvider;
|
||||
|
@ -51,27 +50,20 @@ import techreborn.TechReborn;
|
|||
import techreborn.init.TRContent;
|
||||
import techreborn.items.UpgradeItem;
|
||||
import techreborn.utils.ToolTipAssistUtils;
|
||||
import techreborn.utils.WIP;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class StackToolTipHandler implements ItemTooltipCallback {
|
||||
|
||||
private static final ArrayList<Block> wipBlocks = new ArrayList<>();
|
||||
public static final Map<Item, Boolean> ITEM_ID = Maps.newHashMap();
|
||||
|
||||
public static void setup() {
|
||||
ItemTooltipCallback.EVENT.register(new StackToolTipHandler());
|
||||
|
||||
// WIP injection
|
||||
// wipBlocks.add(TRContent.Machine.NAME.block);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getTooltip(ItemStack stack, TooltipContext tooltipContext, List<Text> components) {
|
||||
public void getTooltip(ItemStack stack, TooltipContext tooltipContext, List<Text> tooltipLines) {
|
||||
Item item = stack.getItem();
|
||||
|
||||
if (!ITEM_ID.computeIfAbsent(item, this::isTRItem))
|
||||
|
@ -80,25 +72,21 @@ public class StackToolTipHandler implements ItemTooltipCallback {
|
|||
// Machine info and upgrades helper section
|
||||
Block block = Block.getBlockFromItem(item);
|
||||
|
||||
if (wipBlocks.contains(block) || block instanceof WIP) {
|
||||
components.add(new TranslatableText("techreborn.tooltip.wip").formatted(Formatting.RED));
|
||||
}
|
||||
|
||||
if (block instanceof BaseBlockEntityProvider) {
|
||||
ToolTipAssistUtils.addInfo(item.getTranslationKey(), components);
|
||||
ToolTipAssistUtils.addInfo(item.getTranslationKey(), tooltipLines);
|
||||
}
|
||||
|
||||
if (item instanceof UpgradeItem) {
|
||||
UpgradeItem upgrade = (UpgradeItem) item;
|
||||
|
||||
ToolTipAssistUtils.addInfo(item.getTranslationKey(), components, false);
|
||||
components.addAll(ToolTipAssistUtils.getUpgradeStats(TRContent.Upgrades.valueOf(upgrade.name.toUpperCase()), stack.getCount(), Screen.hasShiftDown()));
|
||||
ToolTipAssistUtils.addInfo(item.getTranslationKey(), tooltipLines, false);
|
||||
tooltipLines.addAll(ToolTipAssistUtils.getUpgradeStats(TRContent.Upgrades.valueOf(upgrade.name.toUpperCase()), stack.getCount(), Screen.hasShiftDown()));
|
||||
}
|
||||
|
||||
|
||||
// Other section
|
||||
if (item instanceof IListInfoProvider) {
|
||||
((IListInfoProvider) item).addInfo(components, false, false);
|
||||
((IListInfoProvider) item).addInfo(tooltipLines, false, false);
|
||||
} else if (stack.getItem() instanceof EnergyHolder) {
|
||||
LiteralText line1 = new LiteralText(PowerSystem.getLocalizedPowerNoSuffix(Energy.of(stack).getEnergy()));
|
||||
line1.append("/");
|
||||
|
@ -107,14 +95,14 @@ public class StackToolTipHandler implements ItemTooltipCallback {
|
|||
line1.append(PowerSystem.getDisplayPower().abbreviation);
|
||||
line1.formatted(Formatting.GOLD);
|
||||
|
||||
components.add(1, line1);
|
||||
tooltipLines.add(1, line1);
|
||||
|
||||
if (Screen.hasShiftDown()) {
|
||||
int percentage = percentage(Energy.of(stack).getMaxStored(), Energy.of(stack).getEnergy());
|
||||
Formatting color = StringUtils.getPercentageColour(percentage);
|
||||
components.add(2, new LiteralText(color + "" + percentage + "%" + Formatting.GRAY + " Charged"));
|
||||
tooltipLines.add(2, new LiteralText(color + "" + percentage + "%" + Formatting.GRAY + " Charged"));
|
||||
// TODO: show both input and output rates
|
||||
components.add(3, new LiteralText(Formatting.GRAY + "I/O Rate: " + Formatting.GOLD + PowerSystem.getLocalizedPower(((EnergyHolder) item).getMaxInput(EnergySide.UNKNOWN))));
|
||||
tooltipLines.add(3, new LiteralText(Formatting.GRAY + "I/O Rate: " + Formatting.GOLD + PowerSystem.getLocalizedPower(((EnergyHolder) item).getMaxInput(EnergySide.UNKNOWN))));
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
|
@ -125,10 +113,10 @@ public class StackToolTipHandler implements ItemTooltipCallback {
|
|||
CompoundTag blockEntityData = stack.getTag().getCompound("blockEntity_data");
|
||||
blockEntity.fromTag(blockEntity.getCachedState(), blockEntityData);
|
||||
hasData = true;
|
||||
components.add(new LiteralText("Block data contained").formatted(Formatting.DARK_GREEN));
|
||||
tooltipLines.add(new LiteralText("Block data contained").formatted(Formatting.DARK_GREEN));
|
||||
}
|
||||
if (blockEntity instanceof IListInfoProvider) {
|
||||
((IListInfoProvider) blockEntity).addInfo(components, false, hasData);
|
||||
((IListInfoProvider) blockEntity).addInfo(tooltipLines, false, hasData);
|
||||
}
|
||||
}
|
||||
} catch (NullPointerException e) {
|
||||
|
|
|
@ -53,23 +53,23 @@ public class ToolTipAssistUtils {
|
|||
|
||||
switch (upgradeType) {
|
||||
case OVERCLOCKER:
|
||||
tips.add(getPositive("Speed increase", calculateValue(TechRebornConfig.overclockerSpeed * 100, count, shiftHeld), "%"));
|
||||
tips.add(getNegative("Energy increase", calculateValue(TechRebornConfig.overclockerPower * 100, count, shiftHeld), "%"));
|
||||
tips.add(getPositive(I18n.translate("techreborn.tooltip.upgrade.speed_increase"), calculateValue(TechRebornConfig.overclockerSpeed * 100, count, shiftHeld), "%"));
|
||||
tips.add(getNegative(I18n.translate("techreborn.tooltip.upgrade.energy_increase"), calculateValue(TechRebornConfig.overclockerPower * 100, count, shiftHeld), "%"));
|
||||
break;
|
||||
case TRANSFORMER:
|
||||
shouldStackCalculate = false;
|
||||
break;
|
||||
case ENERGY_STORAGE:
|
||||
tips.add(getPositive("Storage increase", calculateValue(TechRebornConfig.energyStoragePower, count, shiftHeld), " E"));
|
||||
tips.add(getPositive(I18n.translate("techreborn.tooltip.upgrade.storage_increase"), calculateValue(TechRebornConfig.energyStoragePower, count, shiftHeld), " E"));
|
||||
break;
|
||||
case SUPERCONDUCTOR:
|
||||
tips.add(getPositive("Increased flow by: ", calculateValue(Math.pow(2, (TechRebornConfig.superConductorCount + 2)) * 100, count, shiftHeld), "%"));
|
||||
tips.add(getPositive(I18n.translate("techreborn.tooltip.upgrade.flow_increase"), calculateValue(Math.pow(2, (TechRebornConfig.superConductorCount + 2)) * 100, count, shiftHeld), "%"));
|
||||
break;
|
||||
}
|
||||
|
||||
// Add reminder that they can use shift to calculate the entire stack
|
||||
if (shouldStackCalculate && !shiftHeld) {
|
||||
tips.add(new LiteralText(instructColour + "Hold shift for stack calculation"));
|
||||
tips.add(new LiteralText(instructColour + I18n.translate("techreborn.tooltip.more_info")));
|
||||
}
|
||||
|
||||
return tips;
|
||||
|
@ -91,7 +91,7 @@ public class ToolTipAssistUtils {
|
|||
list.add(new LiteralText(infoColour + infoLine));
|
||||
}
|
||||
} else {
|
||||
list.add(new LiteralText(instructColour + "Hold shift for info"));
|
||||
list.add(new LiteralText(instructColour + I18n.translate("techreborn.tooltip.more_info")));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue