Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public boolean isFiring;
- @Override
- protected void entityInit() {
- super.entityInit();
- this.dataWatcher.addObject(25, (isFiring) ? 1 : 0);
- }
- if(this.getAttackTarget() != null){
- System.out.println("ATTACK TARGET: " + this.getAttackTarget().getCommandSenderName());
- faceEntity(this.getAttackTarget(), 18, 100);
- Vec3 vec3d = getLook(1.0F).normalize();
- Vec3 vec3d1 = Vec3.createVectorHelper(posX - this.getAttackTarget().posX,
- ((boundingBox.minY + (double)(height / 2.0F)) - this.getAttackTarget().posY),
- posZ - this.getAttackTarget().posZ);
- //double d = vec3d1.lengthVector();
- vec3d1 = vec3d1.normalize();
- double d1 = vec3d.dotProduct(vec3d1)*-1;
- if(d1 > (getDistanceToEntity(this.getAttackTarget()) < 1.5 ? 0.95 : 0.7)){
- isFiring = true;
- lazerRenderCounter += (Math.abs(Math.sin(ticksExisted*0.1))+1)*5;
- this.getAttackTarget().attackEntityFrom(DamageSource.causeMobDamage(this), rand.nextInt(2)+2);
- } else {
- isFiring = false;
- }
- if(!canAttackEntity(this.getAttackTarget())){
- this.setAttackTarget(null);
- }
- this.dataWatcher.updateObject(25, (isFiring) ? 1 : 0);
- _______________________________________________ RENDER FILE ______________________
- 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.DataWatcher;
- 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;
- DataWatcher watcher = entityliving.getDataWatcher();
- EntityK9 entityk9 = (EntityK9) entityliving;
- int isFiring = watcher.getWatchableObjectInt(25);
- if(isFiring != 0 && entityk9.getAttackTarget() != null){
- 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");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement