Jump to content

custom entity rendering issues


theoneandonly2004

Recommended Posts

Ok so what I am trying to create is a new villager to act similar to an iron golem that will attack mobs.

So I have most of what I want setup for the base of the mob, except I have run into a problem within the rendering/texture of the mob.

 

https://www.dropbox.com/s/0r4mzycbkxt37an/Screenshot%202014-09-07%2019.17.49.png?dl=0

 

for some reason it appears as if there is an extra body layer rendering on top of the head despite not being in the techne model.

The model itself however will appear fie within techne

 

If anyone can help it would be appreciated

 

techne model code

 

 

package models;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.util.MathHelper;

public class warriorVillagerModel extends ModelBiped
{
   //fields
   ModelRenderer head;
   ModelRenderer body;
   ModelRenderer rightarm;
   ModelRenderer leftarm;
   ModelRenderer rightleg;
   ModelRenderer leftleg;

   public warriorVillagerModel()
   {
      textureWidth = 64;
      textureHeight = 64;

      head = new ModelRenderer(this, 0, 0);
      head.addBox(-4F, -8F, -4F, 8, 8, ;
      head.setRotationPoint(0F, 0F, 0F);
      head.setTextureSize(64, 64);
      head.setTextureOffset(0,0);
      //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, 64);
      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, 64);
      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, 64);
      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, 64);
      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, 64);
      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)
   {
      super.setRotationAngles(f, f1, f2, f3, f4, f5,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;
   }

}

 

 

 

 

Entity class

 

 


package entities;

import net.minecraft.entity.EntityAgeable;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.IMerchant;
import net.minecraft.entity.INpc;
import net.minecraft.entity.ai.*;
import net.minecraft.entity.monster.EntityCreeper;
import net.minecraft.entity.monster.EntityEnderman;
import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.entity.passive.EntityVillager;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.village.MerchantRecipe;
import net.minecraft.village.MerchantRecipeList;
import net.minecraft.world.World;

public class WarriorVillagerEntity extends EntityAgeable implements IMerchant, INpc {


   public WarriorVillagerEntity(World world)
   {
      super(world);

      this.setSize(0.6F, 1.8F);
      this.tasks.addTask(0, new EntityAISwimming(this));
      this.tasks.addTask(2, new EntityAIMoveIndoors(this));
      this.tasks.addTask(3, new EntityAIRestrictOpenDoor(this));
      this.tasks.addTask(4, new EntityAIOpenDoor(this, true));
      this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 0.6D));
      this.tasks.addTask(9, new EntityAIWatchClosest2(this, EntityPlayer.class, 3.0F, 1.0F));
      this.tasks.addTask(9, new EntityAIWatchClosest2(this, EntityVillager.class, 5.0F, 0.02F));
      this.tasks.addTask(9, new EntityAIWander(this, 0.6D));
      this.tasks.addTask(10, new EntityAIWatchClosest(this, EntityLiving.class, 8.0F));
      this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityZombie.class, 0, true));
      this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntitySkeleton.class, 0, true));
      this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityCreeper.class, 0, true));
      this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityEnderman.class, 0, true));

      this.setCurrentItemOrArmor(0,new ItemStack(Items.diamond_sword));
   }



   @Override
   public EntityAgeable createChild(EntityAgeable p_90011_1_) {
      return null;  //To change body of implemented methods use File | Settings | File Templates.
   }

   @Override
   public void setCustomer(EntityPlayer p_70932_1_) {
      //To change body of implemented methods use File | Settings | File Templates.
   }

   @Override
   public EntityPlayer getCustomer() {
      return null;  //To change body of implemented methods use File | Settings | File Templates.
   }

   @Override
   public MerchantRecipeList getRecipes(EntityPlayer p_70934_1_) {
      return null;  //To change body of implemented methods use File | Settings | File Templates.
   }

   @Override
   public void setRecipes(MerchantRecipeList p_70930_1_) {
      //To change body of implemented methods use File | Settings | File Templates.
   }

   @Override
   public void useRecipe(MerchantRecipe p_70933_1_) {
      //To change body of implemented methods use File | Settings | File Templates.
   }

   @Override
   public void func_110297_a_(ItemStack p_110297_1_) {
      //To change body of implemented methods use File | Settings | File Templates.
   }
}//class

 

 

 

 

render class code

 

 

package render;


import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import entities.EntityHerobrine;
import entities.WarriorVillagerEntity;
import keystuff.myMod;
import models.herobrine;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.renderer.entity.RenderBiped;
import net.minecraft.client.renderer.entity.RenderLiving;
import net.minecraft.entity.Entity;
import net.minecraft.entity.passive.EntityCow;
import net.minecraft.util.ResourceLocation;

@SideOnly(Side.CLIENT)
public class RenderVillageWarrior extends RenderBiped
{
   private static final ResourceLocation mobTextures = new ResourceLocation(myMod.MODID +":textures/entity/warriorvillager.png");
   private static final String __OBFID = "CL_00000984";

   public RenderVillageWarrior(ModelBiped par1ModelBase, float par2)
   {
      super(par1ModelBase, par2);
   }

   /**
    * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture.
    */
   protected ResourceLocation getEntityTexture(WarriorVillagerEntity entity)
   {
      return mobTextures;
   }

   /**
    * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture.
    */
   protected ResourceLocation getEntityTexture(Entity entity)
   {
      return this.getEntityTexture((WarriorVillagerEntity)entity);
   }
}

 

 

 

 

 

 

 

any help is appreciated

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.