Posted February 24, 20169 yr Hello. Upon adding in a mob to the mod I am currently working on, The mob renders and stuff just fine but the issue that I am having is that the mob will not walk like I would like it to. I want it to walk like a Normal Zombie or Player for that matter. The video below shows how it walks: [embed=425,349] [/embed] How can I fix this? Code for AI: package Josh.Mod.Main.Entity.Macintoshuser2; import Josh.Mod.Main.ModMain; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAIAttackOnCollide; import net.minecraft.entity.ai.EntityAIHurtByTarget; import net.minecraft.entity.ai.EntityAILookIdle; import net.minecraft.entity.ai.EntityAINearestAttackableTarget; import net.minecraft.entity.ai.EntityAISwimming; import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.world.World; public class EntityMac extends EntityMob{ public EntityMac(World par1World) { super(par1World); this.getNavigator().setBreakDoors(false); this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); this.tasks.addTask(3, new EntityAIWander(this, 1.0D)); this.tasks.addTask(4, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(4, new EntityAILookIdle(this)); this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); } protected void applyEntityAttributes(){ super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(3.0D); } protected Item getDropItem(){ return Items.rotten_flesh; } protected void dropRareDrop(int par1){ switch(this.rand.nextInt(2)){ case 0: this.dropItem(ModMain.Ruby, 1); break; case 1: this.dropItem(Item.getItemFromBlock(ModMain.Sulphur), 1); } } } Code for Model: package Josh.Mod.Main.Entity.Macintoshuser2; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; public class ModelMac extends ModelBase { //fields ModelRenderer head; ModelRenderer body; ModelRenderer rightarm; ModelRenderer leftarm; ModelRenderer rightleg; ModelRenderer leftleg; public ModelMac() { textureWidth = 64; textureHeight = 32; head = new ModelRenderer(this, 0, 0); head.addBox(-4F, -8F, -4F, 8, 8, ; head.setRotationPoint(0F, 0F, 0F); head.setTextureSize(64, 32); head.mirror = true; setRotation(head, 0F, 0F, 0F); body = new ModelRenderer(this, 16, 16); body.addBox(-4F, 0F, -2F, 8, 12, 4); body.setRotationPoint(0F, 0F, 0F); body.setTextureSize(64, 32); body.mirror = true; setRotation(body, 0F, 0F, 0F); rightarm = new ModelRenderer(this, 40, 16); rightarm.addBox(-3F, -2F, -2F, 4, 12, 4); rightarm.setRotationPoint(-5F, 2F, 0F); rightarm.setTextureSize(64, 32); rightarm.mirror = true; setRotation(rightarm, 0F, 0F, 0F); leftarm = new ModelRenderer(this, 40, 16); leftarm.addBox(-1F, -2F, -2F, 4, 12, 4); leftarm.setRotationPoint(5F, 2F, 0F); leftarm.setTextureSize(64, 32); leftarm.mirror = true; setRotation(leftarm, 0F, 0F, 0F); rightleg = new ModelRenderer(this, 0, 16); rightleg.addBox(-2F, 0F, -2F, 4, 12, 4); rightleg.setRotationPoint(-2F, 12F, 0F); rightleg.setTextureSize(64, 32); rightleg.mirror = true; setRotation(rightleg, 0F, 0F, 0F); leftleg = new ModelRenderer(this, 0, 16); leftleg.addBox(-2F, 0F, -2F, 4, 12, 4); leftleg.setRotationPoint(2F, 12F, 0F); leftleg.setTextureSize(64, 32); leftleg.mirror = true; setRotation(leftleg, 0F, 0F, 0F); } public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { super.render(entity, f, f1, f2, f3, f4, f5); setRotationAngles(f, f1, f2, f3, f4, f5, entity); head.render(f5); body.render(f5); rightarm.render(f5); leftarm.render(f5); rightleg.render(f5); leftleg.render(f5); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { this.head.rotateAngleY = f3 / (180F / (float)Math.PI); this.head.rotateAngleX = f4 / (180F / (float)Math.PI); this.rightarm.rotateAngleX = MathHelper.cos(f * 0.6662F + (float)Math.PI) * 2.0F * f1 * 0.5F; this.leftarm.rotateAngleX = MathHelper.cos(f * 0.6662F) * 2.0F * f1 * 0.5F; this.rightarm.rotateAngleZ = 0.0F; this.leftarm.rotateAngleZ = 0.0F; this.rightleg.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; this.leftleg.rotateAngleX = MathHelper.cos(f * 0.6662F + (float)Math.PI) * 1.4F * f1; this.rightleg.rotateAngleY = 0.0F; this.leftleg.rotateAngleY = 0.0F; this.rightarm.rotateAngleY = 0.0F; this.leftarm.rotateAngleY = 0.0F; float f6; float f7; if(this.onGround > -9990.0F){ f6 = this.onGround; this.body.rotateAngleY = MathHelper.sin(this.body.rotateAngleY) * 5.0F; this.rightarm.rotationPointZ = MathHelper.sin(this.body.rotateAngleY) * 5.0F; this.rightarm.rotationPointX = -MathHelper.cos(this.body.rotateAngleY) * 5.0F; this.leftarm.rotationPointZ = -MathHelper.sin(this.body.rotateAngleY) * 5.0F; this.leftarm.rotationPointX = MathHelper.cos(this.body.rotateAngleY) * 5.0F; this.rightarm.rotateAngleY += this.body.rotateAngleY; this.leftarm.rotateAngleY += this.body.rotateAngleY; this.leftarm.rotateAngleX += this.body.rotateAngleY; f6 = 1.0F - this.onGround; f6 *= f6; f6 *= f6; f6 = 1.0F - f6; f7 = MathHelper.sin(f6 * (float)Math.PI); float f8 = MathHelper.sin(this.onGround * (float)Math.PI) * -(this.head.rotateAngleX - 0.7F) * 0.75F; this.rightarm.rotateAngleX = (float)((double) this.rightarm.rotateAngleX - ((double)f7 * 1.2D + (double)f8)); this.rightarm.rotateAngleY += this.body.rotateAngleY * 2.0F; this.rightarm.rotateAngleZ = MathHelper.sin(this.onGround * (float)Math.PI) * -0.5F; } this.rightarm.rotateAngleZ += MathHelper.cos(f2 * 0.09F) * 0.05F + 0.05F; this.leftarm.rotateAngleZ -= MathHelper.cos(f2 * 0.09F) * 0.05F + 0.05; this.rightarm.rotateAngleX += MathHelper.sin(f2 * 0.09F) * 0.05F + 0.05F; this.leftarm.rotateAngleX -= MathHelper.sin(f2 * 0.067F) * 0.05F; super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); } }
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.