package tonius.neiintegration.mods.mcforge;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
import tonius.neiintegration.Utils;
import tonius.neiintegration.config.Config;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
public class MCForgeTooltipHandler {
@SubscribeEvent
public void onItemTooltip(ItemTooltipEvent evt) {
if (Config.tooltipUnlocalizedName && (!Config.tooltipUnlocalizedNameShift || Utils.isShiftKeyDown()) && (!Config.tooltipUnlocalizedNameAdvanced || evt.showAdvancedItemTooltips)) {
evt.toolTip.add(EnumChatFormatting.DARK_GRAY + Utils.translate("tooltip.unlocalizedName") + " " + evt.itemStack.getUnlocalizedName());
}
if (Config.tooltipInternalName && (!Config.tooltipInternalNameShift || Utils.isShiftKeyDown()) && (!Config.tooltipInternalNameAdvanced || evt.showAdvancedItemTooltips)) {
evt.toolTip.add(EnumChatFormatting.DARK_GRAY + Utils.translate("tooltip.internalName") + " " + Item.itemRegistry.getNameForObject(evt.itemStack.getItem()));
}
if (Config.tooltipMaxStack && (!Config.tooltipMaxStackShift || Utils.isShiftKeyDown()) && (!Config.tooltipMaxStackAdvanced || evt.showAdvancedItemTooltips)) {
evt.toolTip.add(EnumChatFormatting.DARK_GRAY + Utils.translate("tooltip.maxstack") + " " + String.valueOf(evt.itemStack.getMaxStackSize()));
}
if (Config.tooltipBurnTime && (!Config.tooltipBurnTimeShift || Utils.isShiftKeyDown()) && (!Config.tooltipBurnTimeAdvanced || evt.showAdvancedItemTooltips)) {
int burnTime = TileEntityFurnace.getItemBurnTime(evt.itemStack);
if (burnTime > 0) {
evt.toolTip.add(Utils.translate("tooltip.burntime") + " " + burnTime + " " + Utils.translate("ticks"));
}
}
if (Config.tooltipOreDictNames && (!Config.tooltipOreDictNamesShift || Utils.isShiftKeyDown()) && (!Config.tooltipOreDictNamesAdvanced || evt.showAdvancedItemTooltips)) {
List<String> names = new ArrayList<String>();
for (int id : OreDictionary.getOreIDs(evt.itemStack)) {
String name = OreDictionary.getOreName(id);
if (!names.contains(name)) {
names.add(" " + name);
} else {
names.add(" " + EnumChatFormatting.DARK_GRAY + name);
}
}
Collections.sort(names);
if (!names.isEmpty()) {
evt.toolTip.add(Utils.translate("tooltip.oredict"));
evt.toolTip.addAll(names);
}
}
if (Config.tooltipFluidRegInfo && (!Config.tooltipFluidRegInfoShift || Utils.isShiftKeyDown()) && (!Config.tooltipFluidRegInfoAdvanced || evt.showAdvancedItemTooltips)) {
List<String> names = new ArrayList<String>();
if (FluidContainerRegistry.isEmptyContainer(evt.itemStack)) {
names.add(" " + Utils.translate("tooltip.fluidreg.empty"));
} else {
FluidStack fluid = Utils.getFluidStack(evt.itemStack);
if (fluid != null) {
names.add(" " + fluid.getLocalizedName());
names.add(" " + fluid.amount + " mB");
}
}
if (!names.isEmpty()) {
evt.toolTip.add(Utils.translate("tooltip.fluidreg"));
evt.toolTip.addAll(names);
}
}
}
}