|
1 | 1 | package com.cleanroommc.modularui.api; |
2 | 2 |
|
| 3 | +import com.cleanroommc.modularui.ModularUI; |
| 4 | +import com.cleanroommc.modularui.ModularUIConfig; |
| 5 | +import com.cleanroommc.modularui.api.drawable.IKey; |
| 6 | + |
3 | 7 | import net.minecraft.client.Minecraft; |
4 | 8 | import net.minecraft.client.entity.EntityPlayerSP; |
5 | 9 | import net.minecraft.client.gui.FontRenderer; |
6 | 10 | import net.minecraft.client.gui.GuiScreen; |
7 | 11 | import net.minecraft.client.util.ITooltipFlag; |
8 | 12 | import net.minecraft.item.ItemStack; |
9 | 13 | import net.minecraft.util.text.TextFormatting; |
| 14 | +import net.minecraftforge.fluids.Fluid; |
| 15 | +import net.minecraftforge.fluids.FluidRegistry; |
| 16 | +import net.minecraftforge.fluids.FluidStack; |
| 17 | +import net.minecraftforge.fml.common.Loader; |
| 18 | +import net.minecraftforge.fml.common.ModContainer; |
10 | 19 |
|
| 20 | +import org.jetbrains.annotations.NotNull; |
11 | 21 | import org.jetbrains.annotations.Nullable; |
12 | 22 |
|
13 | 23 | import java.util.Collections; |
@@ -60,17 +70,51 @@ public static FontRenderer getFontRenderer() { |
60 | 70 | return null; |
61 | 71 | } |
62 | 72 |
|
63 | | - public static List<String> getItemToolTip(ItemStack item) { |
| 73 | + public static @NotNull List<String> getItemToolTip(@NotNull ItemStack item) { |
64 | 74 | if (!hasMc()) return Collections.emptyList(); |
65 | | - if (getMc().currentScreen != null) return getMc().currentScreen.getItemToolTip(item); |
66 | | - List<String> list = item.getTooltip(getPlayer(), getMc().gameSettings.advancedItemTooltips ? ITooltipFlag.TooltipFlags.ADVANCED : ITooltipFlag.TooltipFlags.NORMAL); |
67 | | - for (int i = 0; i < list.size(); ++i) { |
| 75 | + if (getMc().currentScreen != null) { |
| 76 | + List<String> tooltips = getMc().currentScreen.getItemToolTip(item); |
| 77 | + if (!ModularUI.Mods.MODNAMETOOLTIP.isLoaded()) { |
| 78 | + tooltips.add(ModularUIConfig.modNameFormat + getItemModName(item) + "§r"); |
| 79 | + } |
| 80 | + |
| 81 | + return tooltips; |
| 82 | + } |
| 83 | + |
| 84 | + List<String> tooltips = item.getTooltip(getPlayer(), getMc().gameSettings.advancedItemTooltips ? ITooltipFlag.TooltipFlags.ADVANCED : ITooltipFlag.TooltipFlags.NORMAL); |
| 85 | + for (int i = 0; i < tooltips.size(); ++i) { |
68 | 86 | if (i == 0) { |
69 | | - list.set(i, item.getItem().getForgeRarity(item).getColor() + list.get(i)); |
| 87 | + tooltips.set(i, item.getItem().getForgeRarity(item).getColor() + tooltips.get(i)); |
70 | 88 | } else { |
71 | | - list.set(i, TextFormatting.GRAY + list.get(i)); |
| 89 | + tooltips.set(i, TextFormatting.GRAY + tooltips.get(i)); |
72 | 90 | } |
73 | 91 | } |
74 | | - return list; |
| 92 | + |
| 93 | + if (!ModularUI.Mods.MODNAMETOOLTIP.isLoaded()) { |
| 94 | + tooltips.add(ModularUIConfig.modNameFormat + getItemModName(item) + "§r"); |
| 95 | + } |
| 96 | + |
| 97 | + return tooltips; |
| 98 | + } |
| 99 | + |
| 100 | + public static @Nullable String getItemModName(@NotNull ItemStack item) { |
| 101 | + ModContainer modContainer = Loader.instance().getIndexedModList().get(item.getItem().getCreatorModId(item)); |
| 102 | + return modContainer == null ? null : modContainer.getName(); |
| 103 | + } |
| 104 | + |
| 105 | + public static @NotNull IKey getFluidModNameKey(@NotNull FluidStack fluidStack) { |
| 106 | + return IKey.str(getFluidModName(fluidStack)); |
| 107 | + } |
| 108 | + |
| 109 | + public static @NotNull String getFluidModName(@NotNull FluidStack fluid) { |
| 110 | + ModContainer modContainer = Loader.instance().getIndexedModList().get(getFluidModID(fluid.getFluid())); |
| 111 | + if (modContainer == null) throw new IllegalStateException( |
| 112 | + "Tried to get the mod name of a fluid that isn't registered to the Forge FluidRegistry"); |
| 113 | + return "§9§o" + modContainer.getName() + "§r"; |
| 114 | + } |
| 115 | + |
| 116 | + public static @NotNull String getFluidModID(@NotNull Fluid fluid) { |
| 117 | + String fluidModName = FluidRegistry.getDefaultFluidName(fluid); |
| 118 | + return fluidModName.substring(0, fluidModName.indexOf(":")); |
75 | 119 | } |
76 | 120 | } |
0 commit comments