88 lines
3.0 KiB
Java
88 lines
3.0 KiB
Java
package com.pahimar.ee3.client.handler;
|
|
|
|
import com.pahimar.ee3.client.util.RenderUtils;
|
|
import com.pahimar.ee3.util.IOverlayItem;
|
|
import cpw.mods.fml.client.FMLClientHandler;
|
|
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
|
import cpw.mods.fml.common.gameevent.TickEvent;
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.gui.ScaledResolution;
|
|
import net.minecraft.client.renderer.RenderHelper;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.item.ItemStack;
|
|
import org.lwjgl.opengl.GL11;
|
|
import org.lwjgl.opengl.GL12;
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
public class HUDTickHandler {
|
|
@SubscribeEvent
|
|
public void renderTick(TickEvent.RenderTickEvent event) {
|
|
if (event.phase == TickEvent.Phase.END) {
|
|
Minecraft minecraft = FMLClientHandler.instance().getClient();
|
|
EntityPlayer entityPlayer = minecraft.thePlayer;
|
|
|
|
if (entityPlayer != null) {
|
|
ItemStack currentItemStack = entityPlayer.inventory.getCurrentItem();
|
|
if (Minecraft.isGuiEnabled() && minecraft.inGameHasFocus) {
|
|
if (currentItemStack != null
|
|
&& currentItemStack.getItem() instanceof IOverlayItem) {
|
|
renderHUDOverlayItem(minecraft, entityPlayer, currentItemStack);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private static void renderHUDOverlayItem(
|
|
Minecraft minecraft, EntityPlayer entityPlayer, ItemStack itemStack
|
|
) {
|
|
float overlayScale = 2f;
|
|
float overlayOpacity = 1f;
|
|
GL11.glPushMatrix();
|
|
ScaledResolution sr = new ScaledResolution(
|
|
minecraft, minecraft.displayWidth, minecraft.displayHeight
|
|
);
|
|
GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT);
|
|
GL11.glMatrixMode(GL11.GL_PROJECTION);
|
|
GL11.glLoadIdentity();
|
|
GL11.glOrtho(
|
|
0.0D,
|
|
sr.getScaledWidth_double(),
|
|
sr.getScaledHeight_double(),
|
|
0.0D,
|
|
1000.0D,
|
|
3000.0D
|
|
);
|
|
GL11.glMatrixMode(GL11.GL_MODELVIEW);
|
|
GL11.glLoadIdentity();
|
|
GL11.glTranslatef(0.0F, 0.0F, -2000.0F);
|
|
GL11.glPushMatrix();
|
|
RenderHelper.enableGUIStandardItemLighting();
|
|
GL11.glDisable(GL11.GL_LIGHTING);
|
|
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
|
|
GL11.glEnable(GL11.GL_COLOR_MATERIAL);
|
|
GL11.glEnable(GL11.GL_LIGHTING);
|
|
int hudOverlayX = 0;
|
|
int hudOverlayY = 0;
|
|
|
|
hudOverlayX = (int) (sr.getScaledWidth() - 16 * overlayScale);
|
|
hudOverlayY = (int) (sr.getScaledHeight() - 16 * overlayScale);
|
|
|
|
RenderUtils.renderItemIntoGUI(
|
|
minecraft.fontRenderer,
|
|
itemStack,
|
|
hudOverlayX,
|
|
hudOverlayY,
|
|
overlayOpacity,
|
|
overlayScale,
|
|
-90
|
|
);
|
|
|
|
GL11.glDisable(GL11.GL_LIGHTING);
|
|
GL11.glPopMatrix();
|
|
GL11.glPopMatrix();
|
|
}
|
|
}
|