Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/main/java/com/cleanroommc/modularui/ModularUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ public enum Mods {
BLUR(ModIds.BLUR),
BOGOSORTER(ModIds.BOGOSORTER),
JEI(ModIds.JEI),
NEA(ModIds.NEA);
NEA(ModIds.NEA),
MODNAMETOOLTIP(ModIds.MODNAMETOOLTIP);

public final String id;
private boolean loaded = false;
Expand Down Expand Up @@ -101,5 +102,6 @@ public static class ModIds {
public static final String JEI = "jei";
public static final String NEA = "neverenoughanimations";
public static final String BAUBLES = "baubles";
public static final String MODNAMETOOLTIP = "modnametooltip";
}
}
3 changes: 3 additions & 0 deletions src/main/java/com/cleanroommc/modularui/ModularUIConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,7 @@ public class ModularUIConfig {

@Config.Comment("If true, vanilla tooltip will be replaced with MUI's RichTooltip")
public static boolean replaceVanillaTooltips = false;

@Config.Comment({"The format prefix of the mod name tooltip line.", "Default (Blue and Italic): §9§o"})
public static String modNameFormat = "§9§o";
}
58 changes: 51 additions & 7 deletions src/main/java/com/cleanroommc/modularui/api/MCHelper.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,23 @@
package com.cleanroommc.modularui.api;

import com.cleanroommc.modularui.ModularUI;
import com.cleanroommc.modularui.ModularUIConfig;
import com.cleanroommc.modularui.api.drawable.IKey;

import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.item.ItemStack;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.ModContainer;

import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Collections;
Expand Down Expand Up @@ -60,17 +70,51 @@ public static FontRenderer getFontRenderer() {
return null;
}

public static List<String> getItemToolTip(ItemStack item) {
public static @NotNull List<String> getItemToolTip(@NotNull ItemStack item) {
if (!hasMc()) return Collections.emptyList();
if (getMc().currentScreen != null) return getMc().currentScreen.getItemToolTip(item);
List<String> list = item.getTooltip(getPlayer(), getMc().gameSettings.advancedItemTooltips ? ITooltipFlag.TooltipFlags.ADVANCED : ITooltipFlag.TooltipFlags.NORMAL);
for (int i = 0; i < list.size(); ++i) {
if (getMc().currentScreen != null) {
List<String> tooltips = getMc().currentScreen.getItemToolTip(item);
if (!ModularUI.Mods.MODNAMETOOLTIP.isLoaded()) {
tooltips.add(ModularUIConfig.modNameFormat + getItemModName(item) + "§r");
}

return tooltips;
}

List<String> tooltips = item.getTooltip(getPlayer(), getMc().gameSettings.advancedItemTooltips ? ITooltipFlag.TooltipFlags.ADVANCED : ITooltipFlag.TooltipFlags.NORMAL);
for (int i = 0; i < tooltips.size(); ++i) {
if (i == 0) {
list.set(i, item.getItem().getForgeRarity(item).getColor() + list.get(i));
tooltips.set(i, item.getItem().getForgeRarity(item).getColor() + tooltips.get(i));
} else {
list.set(i, TextFormatting.GRAY + list.get(i));
tooltips.set(i, TextFormatting.GRAY + tooltips.get(i));
}
}
return list;

if (!ModularUI.Mods.MODNAMETOOLTIP.isLoaded()) {
tooltips.add(ModularUIConfig.modNameFormat + getItemModName(item) + "§r");
}

return tooltips;
}

public static @Nullable String getItemModName(@NotNull ItemStack item) {
ModContainer modContainer = Loader.instance().getIndexedModList().get(item.getItem().getCreatorModId(item));
return modContainer == null ? null : modContainer.getName();
}

public static @NotNull IKey getFluidModNameKey(@NotNull FluidStack fluidStack) {
return IKey.str(getFluidModName(fluidStack));
}

public static @NotNull String getFluidModName(@NotNull FluidStack fluid) {
ModContainer modContainer = Loader.instance().getIndexedModList().get(getFluidModID(fluid.getFluid()));
if (modContainer == null) throw new IllegalStateException(
"Tried to get the mod name of a fluid that isn't registered to the Forge FluidRegistry");
return "§9§o" + modContainer.getName() + "§r";
}

public static @NotNull String getFluidModID(@NotNull Fluid fluid) {
String fluidModName = FluidRegistry.getDefaultFluidName(fluid);
return fluidModName.substring(0, fluidModName.indexOf(":"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.cleanroommc.modularui.ModularUI;
import com.cleanroommc.modularui.api.ITheme;
import com.cleanroommc.modularui.api.MCHelper;
import com.cleanroommc.modularui.api.UpOrDown;
import com.cleanroommc.modularui.api.drawable.IDrawable;
import com.cleanroommc.modularui.api.drawable.IKey;
Expand Down Expand Up @@ -102,6 +103,9 @@ public FluidSlot() {
}
}
}
if (fluid != null) {
tooltip.addLine(MCHelper.getFluidModName(fluid));
}
});
}

Expand Down