package com.austinv11.collectiveframework.minecraft.client.gui; import com.austinv11.collectiveframework.minecraft.reference.Config; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; import net.minecraftforge.client.event.RenderGameOverlayEvent; import java.awt.*; import java.util.concurrent.ConcurrentLinkedDeque; @SideOnly(Side.CLIENT) public class KeyOverlay { public static final ConcurrentLinkedDeque<Object[]> keys = new ConcurrentLinkedDeque<Object[]>(); public static final int KEY_LIFE_LENGTH = 90; @SubscribeEvent public void renderOverlay(RenderGameOverlayEvent.Post event) { if (Config.keyOverlay) { if (/*event.isCanceled() || */event.type != RenderGameOverlayEvent.ElementType.HOTBAR) return; int x = 1; ConcurrentLinkedDeque<Object[]> newKeys = new ConcurrentLinkedDeque<Object[]>(); while (!keys.isEmpty()) { Object[] key = keys.pop(); String s = (String)key[0]; int ticksLived = (Integer)key[1]; Color color = Color.WHITE; for (int i = 0; i < KEY_LIFE_LENGTH/(ticksLived*2); i++) color = color.darker(); Minecraft.getMinecraft().fontRenderer.drawString(s, x, 1, color.getRGB()); x += Minecraft.getMinecraft().fontRenderer.getStringWidth(s)+3; if (ticksLived > 1) newKeys.add(new Object[]{s, --ticksLived}); } keys.addAll(newKeys); } } }