Advertisement
Guest User

Untitled

a guest
Jun 13th, 2015
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.70 KB | None | 0 0
  1.  
  2. public boolean isFiring;
  3.  
  4. @Override
  5. protected void entityInit() {
  6. super.entityInit();
  7. this.dataWatcher.addObject(25, (isFiring) ? 1 : 0);
  8. }
  9.  
  10.  
  11.  
  12.  
  13. if(this.getAttackTarget() != null){
  14. System.out.println("ATTACK TARGET: " + this.getAttackTarget().getCommandSenderName());
  15. faceEntity(this.getAttackTarget(), 18, 100);
  16. Vec3 vec3d = getLook(1.0F).normalize();
  17. Vec3 vec3d1 = Vec3.createVectorHelper(posX - this.getAttackTarget().posX,
  18. ((boundingBox.minY + (double)(height / 2.0F)) - this.getAttackTarget().posY),
  19. posZ - this.getAttackTarget().posZ);
  20. //double d = vec3d1.lengthVector();
  21. vec3d1 = vec3d1.normalize();
  22. double d1 = vec3d.dotProduct(vec3d1)*-1;
  23.  
  24.  
  25.  
  26. if(d1 > (getDistanceToEntity(this.getAttackTarget()) < 1.5 ? 0.95 : 0.7)){
  27. isFiring = true;
  28. lazerRenderCounter += (Math.abs(Math.sin(ticksExisted*0.1))+1)*5;
  29. this.getAttackTarget().attackEntityFrom(DamageSource.causeMobDamage(this), rand.nextInt(2)+2);
  30.  
  31. } else {
  32. isFiring = false;
  33. }
  34. if(!canAttackEntity(this.getAttackTarget())){
  35. this.setAttackTarget(null);
  36. }
  37. this.dataWatcher.updateObject(25, (isFiring) ? 1 : 0);
  38.  
  39.  
  40. _______________________________________________ RENDER FILE ______________________
  41.  
  42. package com.ikingssgc.client.entityrenderers;
  43.  
  44. import net.minecraft.client.Minecraft;
  45. import net.minecraft.client.renderer.Tessellator;
  46. import net.minecraft.client.renderer.entity.RenderLiving;
  47. import net.minecraft.client.renderer.entity.RenderManager;
  48. import net.minecraft.entity.DataWatcher;
  49. import net.minecraft.entity.Entity;
  50. import net.minecraft.entity.EntityLiving;
  51. import net.minecraft.entity.EntityLivingBase;
  52. import net.minecraft.util.ResourceLocation;
  53.  
  54. import org.lwjgl.opengl.GL11;
  55.  
  56. import com.ikingssgc.DoctorForge;
  57. import com.ikingssgc.client.models.ModelK9;
  58. import com.ikingssgc.core.entity.EntityK9;
  59.  
  60. public class RenderK9 extends RenderLiving {
  61.  
  62. public RenderK9() {
  63. super(new ModelK9(), 1f);
  64. setRenderPassModel(new ModelK9());
  65. }
  66. @Override
  67. public void doRender(EntityLiving entityliving, double d, double d1, double d2, float f, float f1)
  68. {
  69. ((ModelK9) mainModel).renderTarget = ((ModelK9) renderPassModel).renderTarget = (EntityK9) entityliving;
  70. DataWatcher watcher = entityliving.getDataWatcher();
  71. EntityK9 entityk9 = (EntityK9) entityliving;
  72. int isFiring = watcher.getWatchableObjectInt(25);
  73.  
  74.  
  75. if(isFiring != 0 && entityk9.getAttackTarget() != null){
  76. EntityLivingBase targetEntity = entityk9.getAttackTarget();
  77. System.out.println("IS FIRING!!");
  78. GL11.glPushMatrix();
  79. Tessellator tessellator = Tessellator.instance;
  80. GL11.glEnable(GL11.GL_BLEND);
  81. GL11.glBlendFunc(1, 1);
  82. GL11.glColor4d(0.7, 0.2, 0.2, 0.8);
  83.  
  84. GL11.glTranslatef((float)d, (float)d1, (float)d2);
  85. GL11.glDisable(GL11.GL_CULL_FACE);
  86. GL11.glEnable(32826); //GL_RESCALE_NORMAL_EXT
  87. Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("dwcm:textures/entity/K9Lazer.png"));
  88. float roll = (float)entityk9.lazerRenderCounter%64/64;
  89. float f2 = 0;
  90. float f3 = 1;
  91. float f4 = roll;
  92. float f5 = roll+(float)Math.sqrt((entityk9.posX-targetEntity.posX)*(entityk9.posX-targetEntity.posX)+
  93. (entityk9.posY-targetEntity.posY)*(entityk9.posY-targetEntity.posY)+
  94. (entityk9.posZ-targetEntity.posZ)*(entityk9.posZ-targetEntity.posZ));
  95.  
  96. double lazerDiameter = 0.216;
  97. float noseDiffX = (float)Math.cos(entityk9.rotationYaw*0.0174532925+1.55)*1.06F;
  98. float noseDiffZ = (float)Math.sin(entityk9.rotationYaw*0.0174532925+1.55)*1.06F;
  99. float noseDiffY = 0.64f;
  100.  
  101. double d3 = targetEntity.posX;//entityk9.targetEntity.lastTickPosX + (entityk9.targetEntity.posX - entityk9.targetEntity.lastTickPosX) * (double)f;
  102. double d4 = targetEntity.posY + targetEntity.getEyeHeight() - 0.2D;//entityk9.targetEntity.lastTickPosY + (entityk9.targetEntity.posY - entityk9.targetEntity.lastTickPosY) * (double)f;
  103. double d5 = targetEntity.posZ;//entityk9.targetEntity.lastTickPosZ + (entityk9.targetEntity.posZ - entityk9.targetEntity.lastTickPosZ) * (double)f;
  104. d3 -= RenderManager.renderPosX + d;
  105. d4 -= RenderManager.renderPosY + d1;
  106. d5 -= RenderManager.renderPosZ + d2;
  107.  
  108. tessellator.startDrawingQuads();
  109. tessellator.setNormal(0.0F, 1.0F, 0.0F);
  110. tessellator.addVertexWithUV(lazerDiameter*0.25+noseDiffX, noseDiffY, noseDiffZ, f5, f2);
  111. tessellator.addVertexWithUV(-lazerDiameter*0.25+noseDiffX, noseDiffY, noseDiffZ, f5, f3);
  112. tessellator.addVertexWithUV(d3-lazerDiameter, d4, d5, f4, f3);
  113. tessellator.addVertexWithUV(d3+lazerDiameter, d4, d5, f4, f2);
  114. tessellator.addVertexWithUV(noseDiffX, noseDiffY, lazerDiameter*0.25+noseDiffZ, f5, f2);
  115. tessellator.addVertexWithUV(noseDiffX, noseDiffY, -lazerDiameter*0.25+noseDiffZ, f5, f3);
  116. tessellator.addVertexWithUV(d3, d4, d5-lazerDiameter, f4, f3);
  117. tessellator.addVertexWithUV(d3, d4, d5+lazerDiameter, f4, f2);
  118. tessellator.addVertexWithUV(noseDiffX, lazerDiameter*0.25+noseDiffY, noseDiffZ, f5, f2);
  119. tessellator.addVertexWithUV(noseDiffX, -lazerDiameter*0.25+noseDiffY, noseDiffZ, f5, f3);
  120. tessellator.addVertexWithUV(d3, d4-lazerDiameter, d5, f4, f3);
  121. tessellator.addVertexWithUV(d3, d4+lazerDiameter, d5, f4, f2);
  122. tessellator.draw();
  123.  
  124. GL11.glDisable(GL11.GL_BLEND);
  125. GL11.glColor4d(1,1,1,1);
  126. GL11.glPopMatrix();
  127. }
  128. super.doRender(entityliving, d, d1, d2, f, f1);
  129. }
  130.  
  131. @Override
  132. protected ResourceLocation getEntityTexture(Entity var1) {
  133. return new ResourceLocation(DoctorForge.modid+":textures/entity/doctorwho/eK9.png");
  134. }
  135.  
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement