# Pastebin H7EjPJy6 package com.ikingssgc.client.entityrenderers; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; import com.ikingssgc.DoctorForge; import com.ikingssgc.client.models.ModelK9; import com.ikingssgc.core.entity.EntityK9; public class RenderK9 extends RenderLiving { public RenderK9() { super(new ModelK9(), 1f); setRenderPassModel(new ModelK9()); } @Override public void doRender(EntityLiving entityliving, double d, double d1, double d2, float f, float f1) { ((ModelK9) mainModel).renderTarget = ((ModelK9) renderPassModel).renderTarget = (EntityK9) entityliving; EntityK9 entityk9 = (EntityK9) entityliving; if(entityk9.isFiring){ EntityLivingBase targetEntity = entityk9.getAttackTarget(); System.out.println("IS FIRING!!"); GL11.glPushMatrix(); Tessellator tessellator = Tessellator.instance; GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(1, 1); GL11.glColor4d(0.7, 0.2, 0.2, 0.8); GL11.glTranslatef((float)d, (float)d1, (float)d2); GL11.glDisable(GL11.GL_CULL_FACE); GL11.glEnable(32826); //GL_RESCALE_NORMAL_EXT Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("dwcm:textures/entity/K9Lazer.png")); float roll = (float)entityk9.lazerRenderCounter%64/64; float f2 = 0; float f3 = 1; float f4 = roll; float f5 = roll+(float)Math.sqrt((entityk9.posX-targetEntity.posX)*(entityk9.posX-targetEntity.posX)+ (entityk9.posY-targetEntity.posY)*(entityk9.posY-targetEntity.posY)+ (entityk9.posZ-targetEntity.posZ)*(entityk9.posZ-targetEntity.posZ)); double lazerDiameter = 0.216; float noseDiffX = (float)Math.cos(entityk9.rotationYaw*0.0174532925+1.55)*1.06F; float noseDiffZ = (float)Math.sin(entityk9.rotationYaw*0.0174532925+1.55)*1.06F; float noseDiffY = 0.64f; double d3 = targetEntity.posX;//entityk9.targetEntity.lastTickPosX + (entityk9.targetEntity.posX - entityk9.targetEntity.lastTickPosX) * (double)f; double d4 = targetEntity.posY + targetEntity.getEyeHeight() - 0.2D;//entityk9.targetEntity.lastTickPosY + (entityk9.targetEntity.posY - entityk9.targetEntity.lastTickPosY) * (double)f; double d5 = targetEntity.posZ;//entityk9.targetEntity.lastTickPosZ + (entityk9.targetEntity.posZ - entityk9.targetEntity.lastTickPosZ) * (double)f; d3 -= RenderManager.renderPosX + d; d4 -= RenderManager.renderPosY + d1; d5 -= RenderManager.renderPosZ + d2; tessellator.startDrawingQuads(); tessellator.setNormal(0.0F, 1.0F, 0.0F); tessellator.addVertexWithUV(lazerDiameter*0.25+noseDiffX, noseDiffY, noseDiffZ, f5, f2); tessellator.addVertexWithUV(-lazerDiameter*0.25+noseDiffX, noseDiffY, noseDiffZ, f5, f3); tessellator.addVertexWithUV(d3-lazerDiameter, d4, d5, f4, f3); tessellator.addVertexWithUV(d3+lazerDiameter, d4, d5, f4, f2); tessellator.addVertexWithUV(noseDiffX, noseDiffY, lazerDiameter*0.25+noseDiffZ, f5, f2); tessellator.addVertexWithUV(noseDiffX, noseDiffY, -lazerDiameter*0.25+noseDiffZ, f5, f3); tessellator.addVertexWithUV(d3, d4, d5-lazerDiameter, f4, f3); tessellator.addVertexWithUV(d3, d4, d5+lazerDiameter, f4, f2); tessellator.addVertexWithUV(noseDiffX, lazerDiameter*0.25+noseDiffY, noseDiffZ, f5, f2); tessellator.addVertexWithUV(noseDiffX, -lazerDiameter*0.25+noseDiffY, noseDiffZ, f5, f3); tessellator.addVertexWithUV(d3, d4-lazerDiameter, d5, f4, f3); tessellator.addVertexWithUV(d3, d4+lazerDiameter, d5, f4, f2); tessellator.draw(); GL11.glDisable(GL11.GL_BLEND); GL11.glColor4d(1,1,1,1); GL11.glPopMatrix(); } super.doRender(entityliving, d, d1, d2, f, f1); } @Override protected ResourceLocation getEntityTexture(Entity var1) { return new ResourceLocation(DoctorForge.modid+":textures/entity/doctorwho/eK9.png"); } }