Guest User

TooltipHandler.java

a guest
May 16th, 2017
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.31 KB | None | 0 0
  1. package thinh.eligibleadapter.eventhandler;
  2.  
  3. import net.minecraft.client.Minecraft;
  4. import net.minecraft.client.gui.FontRenderer;
  5. import net.minecraft.client.gui.ScaledResolution;
  6. import net.minecraft.util.StringUtils;
  7. import net.minecraftforge.client.event.RenderGameOverlayEvent;
  8. import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
  9. import net.minecraftforge.fml.relauncher.Side;
  10. import net.minecraftforge.fml.relauncher.SideOnly;
  11. import org.lwjgl.opengl.GL11;
  12.  
  13. import java.awt.*;
  14.  
  15. public class TooltipHandler {
  16.  
  17.     /**
  18.      * Abstract
  19.      */
  20.     private static String currentTooltip;
  21.     private static int tooltipDisplayTicks;
  22.  
  23.     public static void setTooltip(String tooltip) {
  24.         if (!tooltip.equals(currentTooltip)) {
  25.             currentTooltip = tooltip;
  26.             tooltipDisplayTicks = 100;
  27.         }
  28.     }
  29.  
  30.     @SideOnly(Side.CLIENT)
  31.     @SubscribeEvent
  32.     public void drawTooltipHUD(RenderGameOverlayEvent.Post event) {
  33.         if (event.getType() == RenderGameOverlayEvent.ElementType.ALL && tooltipDisplayTicks > 0 && !StringUtils.isNullOrEmpty(currentTooltip)) {
  34.             Minecraft mc = Minecraft.getMinecraft();
  35.             ScaledResolution scaledResolution = new ScaledResolution(mc);
  36.             int width = scaledResolution.getScaledWidth();
  37.             int height = scaledResolution.getScaledHeight();
  38.             FontRenderer fontRendererObj = mc.fontRendererObj;
  39.  
  40.             int tooltipX = (width - fontRendererObj.getStringWidth(currentTooltip)) / 2;
  41.             int tooltipY = height - 68;
  42.  
  43.             int opacity = (int) (tooltipDisplayTicks * 256.0F / 10.0F);
  44.  
  45.             if (opacity >= 160) {
  46.                 opacity = 160;
  47.             }
  48.  
  49.             if (opacity > 0) {
  50.                 GL11.glPushMatrix();
  51.                 GL11.glEnable(GL11.GL_BLEND);
  52.                 GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
  53.  
  54.                 int elapsedTicks = 40;
  55.                 int color = Color.getHSBColor((float) Math.cos(elapsedTicks + mc.theWorld.rand.nextInt() / 250D), 0.6F, 1F).getRGB();
  56.                 fontRendererObj.drawStringWithShadow(currentTooltip, tooltipX, tooltipY, color + (opacity << 24));
  57.  
  58.                 GL11.glDisable(GL11.GL_BLEND);
  59.                 GL11.glPopMatrix();
  60.             }
  61.         }
  62.     }
  63.  
  64. }
Advertisement
Add Comment
Please, Sign In to add comment