Jump to content

[UNRESOLVED]Entity rendering in air as Mob colors


xcoopergangx

Recommended Posts

My throwable item render is somewhat messed up. It spawns in correctly sometimes but other times just random colors help!

 

 

2eoinb6.png

2lxuzwy.png

 

 

 

 

 

package minecraftmod;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.resources.ResourceLocation;
import net.minecraft.entity.Entity;
import net.minecraft.entity.projectile.EntityFireball;
import net.minecraft.item.Item;
import net.minecraft.util.Icon;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;

@SideOnly(Side.CLIENT)
public class RenderShuriken extends Render
{
  

    public RenderShuriken(Item shuriken)
    {
    this(shuriken, 0);
    }

    public RenderShuriken(Item shuriken, int par2) {

    	
}

public void doRenderFireball(EntityShuriken par1Entity, double par2, double par4, double par6, float par8, float par9)
    {
        GL11.glPushMatrix();
        GL11.glTranslatef((float)par2, (float)par4, (float)par6);
        GL11.glEnable(GL12.GL_RESCALE_NORMAL);
        Icon icon = TitaniumMod.Shuriken.getIconFromDamage(0);
        Tessellator tessellator = Tessellator.instance;
        float f3 = icon.getMinU();
        float f4 = icon.getMaxU();
        float f5 = icon.getMinV();
        float f6 = icon.getMaxV();
        float f7 = 1.0F;
        float f8 = 0.5F;
        float f9 = 0.25F;
        GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F);
        GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F);
        this.loadTexture("/gui/items.png");
        tessellator.startDrawingQuads();
        tessellator.setNormal(0.0F, 1.0F, 0.0F);
        tessellator.addVertexWithUV((double)(0.0F - f8), (double)(0.0F - f9), 0.0D, (double)f3, (double)f6);
        tessellator.addVertexWithUV((double)(f7 - f8), (double)(0.0F - f9), 0.0D, (double)f4, (double)f6);
        tessellator.addVertexWithUV((double)(f7 - f8), (double)(1.0F - f9), 0.0D, (double)f4, (double)f5);
        tessellator.addVertexWithUV((double)(0.0F - f8), (double)(1.0F - f9), 0.0D, (double)f3, (double)f5);
        tessellator.draw();
        GL11.glDisable(GL12.GL_RESCALE_NORMAL);
        GL11.glPopMatrix();
        
    }

    private void loadTexture(String string) {
	// TODO Auto-generated method stub

}

protected net.minecraft.util.ResourceLocation func_110790_a(EntityFireball par1EntityFireball)
    {
        return TextureMap.field_110576_c;
    }

    protected net.minecraft.util.ResourceLocation func_110775_a(Entity par1Entity)
    {
        return this.func_110790_a((EntityFireball)par1Entity);
    }

    /**
     * Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then
     * handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic
     * (Render<T extends Entity) and this method has signature public void doRender(T entity, double d, double d1,
     * double d2, float f, float f1). But JAD is pre 1.5 so doesn't do that.
     */
    public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9)
    {
        this.doRenderFireball((EntityShuriken)par1Entity, par2, par4, par6, par8, par9);

}
}

render class

 

entity class

package minecraftmod;

import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.client.resources.ResourceLocation;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.monster.EntityBlaze;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.projectile.EntityThrowable;
import net.minecraft.item.EnumToolMaterial;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumArt;
import net.minecraft.util.Icon;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;

public class EntityShuriken extends EntityThrowable   {



private Icon itemIcon;

public EntityShuriken(World par1World)
    {
        super(par1World);
    }
public void registerIcons(IconRegister ir)
{
this.itemIcon = ir.registerIcon( "titaniummod:shuriken");
}

    public EntityShuriken(World par1World, EntityPlayer par3EntityPlayer)
    {
        super(par1World, par3EntityPlayer);
    }

    public EntityShuriken(World par1World, double par2, double par4, double par6)
    {
        super(par1World, par2, par4, par6);
    }
    /**
     * Called when this EntityThrowable hits a block or entity.
     */
    protected void onImpact(MovingObjectPosition par1MovingObjectPosition)
    {
        if (par1MovingObjectPosition.entityHit != null)
        {
           byte b0 = 7;
            if (par1MovingObjectPosition.entityHit instanceof EntityBlaze)
            {
                b0 = 7;
            }
            par1MovingObjectPosition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), b0);
        }
        for (int i = 0; i < 8; ++i)
        {
            this.worldObj.spawnParticle("snowballpoof", this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);
        }
        if (!this.worldObj.isRemote)
        {
            this.setDead();}}

    
    /**
* Gets the amount of gravity to apply to the thrown
* entity with each tick.
*/

@Override protected float getGravityVelocity() {
    return 0.01F; // 0 will make the item carry on forever until it hits something 
    
}


    }
    









 

 

 

 

 

item class

package minecraftmod;

import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.client.resources.ResourceLocation;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.monster.EntityBlaze;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.projectile.EntityThrowable;
import net.minecraft.item.EnumToolMaterial;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumArt;
import net.minecraft.util.Icon;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;

public class EntityShuriken extends EntityThrowable   {



private Icon itemIcon;

public EntityShuriken(World par1World)
    {
        super(par1World);
    }
public void registerIcons(IconRegister ir)
{
this.itemIcon = ir.registerIcon( "titaniummod:shuriken");
}

    public EntityShuriken(World par1World, EntityPlayer par3EntityPlayer)
    {
        super(par1World, par3EntityPlayer);
    }

    public EntityShuriken(World par1World, double par2, double par4, double par6)
    {
        super(par1World, par2, par4, par6);
    }
    /**
     * Called when this EntityThrowable hits a block or entity.
     */
    protected void onImpact(MovingObjectPosition par1MovingObjectPosition)
    {
        if (par1MovingObjectPosition.entityHit != null)
        {
           byte b0 = 7;
            if (par1MovingObjectPosition.entityHit instanceof EntityBlaze)
            {
                b0 = 7;
            }
            par1MovingObjectPosition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), b0);
        }
        for (int i = 0; i < 8; ++i)
        {
            this.worldObj.spawnParticle("snowballpoof", this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);
        }
        if (!this.worldObj.isRemote)
        {
            this.setDead();}}

    
    /**
* Gets the amount of gravity to apply to the thrown
* entity with each tick.
*/

@Override protected float getGravityVelocity() {
    return 0.01F; // 0 will make the item carry on forever until it hits something 
    
}


    }
    









 

 

 

 

 

Link to comment
Share on other sites

Im guessing I replace this

  this.loadTexture("/gui/items.png");

with this

ResourceLocation field_110631_g = new ResourceLocation("textures/entity/chest/normal.png");

?

 

If so how would the new format be for the textures would it be like ("textures/entity(or/items)/shuriken.png")

or ('mod name here:textures/entity(or/item)/shuriken.png

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.