package net.geforcemods.securitycraft.util;
import java.util.Iterator;
import java.util.List;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import net.geforcemods.securitycraft.api.CustomizableSCTE;
import net.geforcemods.securitycraft.misc.EnumCustomModules;
import net.geforcemods.securitycraft.misc.KeyBindings;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.settings.GameSettings;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
public class GuiUtils{
public static ResourceLocation cameraDashboard = new ResourceLocation("securitycraft:textures/gui/camera/cameraDashboard.png");
public static ResourceLocation potionIcons = new ResourceLocation("minecraft:textures/gui/container/inventory.png");
private static RenderItem itemRender = new RenderItem();
public static void drawCameraOverlay(Minecraft mc, Gui gui, ScaledResolution resolution, EntityPlayer player, World world, int x, int y, int z, int mouseX, int mouseY) {
Minecraft.getMinecraft().fontRenderer.drawStringWithShadow(ClientUtils.getFormattedMinecraftTime(), resolution.getScaledWidth() / 2 - Minecraft.getMinecraft().fontRenderer.getStringWidth(ClientUtils.getFormattedMinecraftTime()) / 2, 8, 16777215);
Minecraft.getMinecraft().fontRenderer.drawStringWithShadow(GameSettings.getKeyDisplayString(KeyBindings.cameraZoomIn.getKeyCode()) + "/" + GameSettings.getKeyDisplayString(KeyBindings.cameraZoomOut.getKeyCode()) + " - " + StatCollector.translateToLocal("gui.camera.zoom"), resolution.getScaledWidth() - 80 - Minecraft.getMinecraft().fontRenderer.getStringWidth(GameSettings.getKeyDisplayString(KeyBindings.cameraZoomIn.getKeyCode()) + "/" + GameSettings.getKeyDisplayString(KeyBindings.cameraZoomOut.getKeyCode()) + " - " + StatCollector.translateToLocal("gui.camera.zoom")) / 2, resolution.getScaledHeight() - 60, 16777215);
Minecraft.getMinecraft().fontRenderer.drawStringWithShadow(GameSettings.getKeyDisplayString(KeyBindings.cameraActivateNightVision.getKeyCode()) + " - " + StatCollector.translateToLocal("gui.camera.activateNightVision"), resolution.getScaledWidth() - 91 - Minecraft.getMinecraft().fontRenderer.getStringWidth(GameSettings.getKeyDisplayString(KeyBindings.cameraActivateNightVision.getKeyCode()) + " - " + StatCollector.translateToLocal("gui.camera.activateNightVision")) / 2, resolution.getScaledHeight() - 50, 16777215);
Minecraft.getMinecraft().fontRenderer.drawStringWithShadow(GameSettings.getKeyDisplayString(KeyBindings.cameraEmitRedstone.getKeyCode()) + " - " + StatCollector.translateToLocal("gui.camera.toggleRedstone"), resolution.getScaledWidth() - 83 - Minecraft.getMinecraft().fontRenderer.getStringWidth(GameSettings.getKeyDisplayString(KeyBindings.cameraEmitRedstone.getKeyCode()) + " - " + StatCollector.translateToLocal("gui.camera.toggleRedstone")) / 2, resolution.getScaledHeight() - 40, ((CustomizableSCTE)world.getTileEntity(x, y, z)).hasModule(EnumCustomModules.REDSTONE) ? 16777215 : 16724855);
mc.getTextureManager().bindTexture(cameraDashboard);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
gui.drawTexturedModalRect(5, 0, 0, 0, 90, 20);
gui.drawTexturedModalRect(resolution.getScaledWidth() - 55, 5, 205, 0, 50, 30);
if(player.getActivePotionEffect(Potion.nightVision) == null){
gui.drawTexturedModalRect(28, 4, 90, 12, 16, 11);
}else{
mc.getTextureManager().bindTexture(potionIcons);
gui.drawTexturedModalRect(25, 2, 70, 218, 19, 16);
}
if(world.getBlock(x, y, z).isProvidingWeakPower(world, x, y, z, 0) == 0 && !((CustomizableSCTE) world.getTileEntity(x, y, z)).hasModule(EnumCustomModules.REDSTONE)){
gui.drawTexturedModalRect(12, 2, 104, 0, 12, 12);
}else if(world.getBlock(x, y, z).isProvidingWeakPower(world, x, y, z, 0) == 0 && ((CustomizableSCTE)world.getTileEntity(x, y, z)).hasModule(EnumCustomModules.REDSTONE)){
gui.drawTexturedModalRect(12, 3, 90, 0, 12, 11);
}else{
drawItemStackToGui(mc, Items.redstone, 10, 0, false);
}
}
public static void drawTooltip(List<?> list, int x, int y, FontRenderer fontRenderer){
if(!list.isEmpty()){
GL11.glDisable(GL12.GL_RESCALE_NORMAL);
RenderHelper.disableStandardItemLighting();
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_DEPTH_TEST);
int k = 0;
Iterator<?> iterator = list.iterator();
while (iterator.hasNext()){
String s = (String)iterator.next();
int l = fontRenderer.getStringWidth(s);
if(l > k){
k = l;
}
}
int j2 = x + 12;
int k2 = y - 12;
int i1 = 8;
if(list.size() > 1){
i1 += 2 + (list.size() - 1) * 10;
}
if(j2 + k > Minecraft.getMinecraft().displayWidth){ //w
j2 -= 28 + k;
}
if(k2 + i1 + 6 > Minecraft.getMinecraft().displayHeight){ //h
k2 = Minecraft.getMinecraft().displayHeight - i1 - 6; //h
}
itemRender.zLevel = 300.0F;
int j1 = -267386864;
drawGradientRect(j2 - 3, k2 - 4, j2 + k + 3, k2 - 3, j1, j1, 300.0F);
drawGradientRect(j2 - 3, k2 + i1 + 3, j2 + k + 3, k2 + i1 + 4, j1, j1, 300.0F);
drawGradientRect(j2 - 3, k2 - 3, j2 + k + 3, k2 + i1 + 3, j1, j1, 300.0F);
drawGradientRect(j2 - 4, k2 - 3, j2 - 3, k2 + i1 + 3, j1, j1, 300.0F);
drawGradientRect(j2 + k + 3, k2 - 3, j2 + k + 4, k2 + i1 + 3, j1, j1, 300.0F);
int k1 = 1347420415;
int l1 = (k1 & 16711422) >> 1 | k1 & -16777216;
drawGradientRect(j2 - 3, k2 - 3 + 1, j2 - 3 + 1, k2 + i1 + 3 - 1, k1, l1, 300.0F);
drawGradientRect(j2 + k + 2, k2 - 3 + 1, j2 + k + 3, k2 + i1 + 3 - 1, k1, l1, 300.0F);
drawGradientRect(j2 - 3, k2 - 3, j2 + k + 3, k2 - 3 + 1, k1, k1, 300.0F);
drawGradientRect(j2 - 3, k2 + i1 + 2, j2 + k + 3, k2 + i1 + 3, l1, l1, 300.0F);
for (int i2 = 0; i2 < list.size(); ++i2)
{
String s1 = (String)list.get(i2);
fontRenderer.drawStringWithShadow(s1, j2, k2, -1);
if (i2 == 0)
{
k2 += 2;
}
k2 += 10;
}
itemRender.zLevel = 0.0F;
//GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_DEPTH_TEST);
//RenderHelper.enableStandardItemLighting();
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
}
}
public static void drawItemStackToGui(Minecraft mc, Item item, int itemDamage, int x, int y, boolean fixLighting){
if(fixLighting){
GL11.glEnable(GL11.GL_LIGHTING);
}
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
itemRender.renderItemAndEffectIntoGUI(mc.fontRenderer, mc.getTextureManager(), new ItemStack(item, 1, itemDamage), x, y);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDisable(GL12.GL_RESCALE_NORMAL);
}
public static void drawItemStackToGui(Minecraft mc, Block block, int x, int y, boolean fixLighting){
if(fixLighting){
GL11.glEnable(GL11.GL_LIGHTING);
}
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
itemRender.renderItemAndEffectIntoGUI(mc.fontRenderer, mc.getTextureManager(), new ItemStack(Item.getItemFromBlock(block), 1, 0), x, y);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDisable(GL12.GL_RESCALE_NORMAL);
}
public static void drawItemStackToGui(Minecraft mc, Item item, int x, int y, boolean fixLighting){
drawItemStackToGui(mc, item, 0, x, y, fixLighting);
}
private static void drawGradientRect(int p_73733_1_, int p_73733_2_, int p_73733_3_, int p_73733_4_, int p_73733_5_, int p_73733_6_, float zLevel){
float f = (p_73733_5_ >> 24 & 255) / 255.0F;
float f1 = (p_73733_5_ >> 16 & 255) / 255.0F;
float f2 = (p_73733_5_ >> 8 & 255) / 255.0F;
float f3 = (p_73733_5_ & 255) / 255.0F;
float f4 = (p_73733_6_ >> 24 & 255) / 255.0F;
float f5 = (p_73733_6_ >> 16 & 255) / 255.0F;
float f6 = (p_73733_6_ >> 8 & 255) / 255.0F;
float f7 = (p_73733_6_ & 255) / 255.0F;
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glEnable(GL11.GL_BLEND);
GL11.glDisable(GL11.GL_ALPHA_TEST);
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
GL11.glShadeModel(GL11.GL_SMOOTH);
Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
tessellator.setColorRGBA_F(f1, f2, f3, f);
tessellator.addVertex(p_73733_3_, p_73733_2_, zLevel);
tessellator.addVertex(p_73733_1_, p_73733_2_, zLevel);
tessellator.setColorRGBA_F(f5, f6, f7, f4);
tessellator.addVertex(p_73733_1_, p_73733_4_, zLevel);
tessellator.addVertex(p_73733_3_, p_73733_4_, zLevel);
tessellator.draw();
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glDisable(GL11.GL_BLEND);
GL11.glEnable(GL11.GL_ALPHA_TEST);
GL11.glEnable(GL11.GL_TEXTURE_2D);
}
}