public void update() { stat.update(); if (ticksExisted >= 30 && !didMakeLockSound) { didMakeLockSound = true; EntityPlayer player = FMLClientHandler.instance().getClient().thePlayer; player.worldObj.playSound( player.posX, player.posY, player.posZ, Sounds.HUD_ENTITY_LOCK, 0.1F, 1.0F, true); } circle1.update(); circle2.update(); for (IEntityTrackEntry tracker : trackEntries) { tracker.update(entity); } isLookingAtTarget = isPlayerLookingAtTarget(); if (hackTime > 0) { IHackableEntity hackableEntity = HackableHandler.getHackableForEntity(entity, PneumaticCraft.proxy.getPlayer()); if (hackableEntity != null) { hackTime++; // = Math.min(hackTime + 1, hackableEntity.getHackTime(entity, // PneumaticCraft.proxy.getPlayer())); } else { hackTime = 0; } } }
public void render(float partialTicks, boolean justRenderWhenHovering) { for (IEntityTrackEntry tracker : trackEntries) { tracker.render(entity, partialTicks); } double x = entity.prevPosX + (entity.posX - entity.prevPosX) * partialTicks; double y = entity.prevPosY + (entity.posY - entity.prevPosY) * partialTicks + entity.height / 2D; double z = entity.prevPosZ + (entity.posZ - entity.prevPosZ) * partialTicks; GL11.glDepthMask(false); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDisable(GL11.GL_CULL_FACE); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glPushMatrix(); GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT); float red = 0.5F; float green = 0.5F; float blue = 1.0F; float alpha = 0.5F; float size = entity.height * 0.5F; if (ticksExisted < 60) { size += 5 - Math.abs(ticksExisted) * 0.083F; alpha = Math.abs(ticksExisted) * 0.005F; } GL11.glTranslated(x, y, z); GL11.glRotatef(180.0F - RenderManager.instance.playerViewY, 0.0F, 1.0F, 0.0F); GL11.glRotatef(180.0F - RenderManager.instance.playerViewX, 1.0F, 0.0F, 0.0F); GL11.glColor4d(red, green, blue, alpha); float renderSize = oldSize + (size - oldSize) * partialTicks; circle1.render(renderSize, partialTicks); circle2.render(renderSize + 0.2D, partialTicks); int targetAcquireProgress = (int) ((ticksExisted - 50) / 0.7F); if (ticksExisted <= 120 && ticksExisted > 50) { GL11.glColor4d(0, 1, 0, 0.8D); RenderProgressBar.render(0D, 0.4D, 1.8D, 0.9D, 0, targetAcquireProgress); } GL11.glEnable(GL11.GL_TEXTURE_2D); FontRenderer fontRenderer = RenderManager.instance.getFontRenderer(); GL11.glScaled(0.02D, 0.02D, 0.02D); GL11.glColor4d(red, green, blue, alpha); if (ticksExisted > 120) { if (justRenderWhenHovering && !isLookingAtTarget) { stat.closeWindow(); } else { stat.openWindow(); } textList = new ArrayList<String>(); for (IEntityTrackEntry tracker : trackEntries) { tracker.addInfo(entity, textList); } stat.setText(textList); stat.render(-1, -1, partialTicks); } else if (ticksExisted > 50) { fontRenderer.drawString("Acquiring Target...", 0, 0, 0x7F7F7F); fontRenderer.drawString(targetAcquireProgress + "%", 37, 28, 0x002F00); } else if (ticksExisted < -30) { stat.closeWindow(); // if(stat.getWidth() > stat.getMinWidth() || stat.getHeight() > stat.getMinHeight()) { // stat.setText(new ArrayList<String>()); stat.render(-1, -1, partialTicks); // } fontRenderer.drawString("Lost Target!", 0, 0, 0xFF0000); } GL11.glPopMatrix(); GL11.glEnable(GL11.GL_CULL_FACE); GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glDisable(GL11.GL_BLEND); GL11.glDepthMask(true); oldSize = size; }