Jump to content

ashtonr12

Members
  • Posts

    479
  • Joined

  • Last visited

Posts posted by ashtonr12

  1. i imagine its the same for 1.4 but i am in 1.51 so no garentees,

    you need four textures for the bow animation

     

    and this code

    public void updateIcons(IconRegister par1IconRegister)
        {
            super.updateIcons(par1IconRegister);
            this.iconArray = new Icon[bowPullIconNameArray.length];
    
            for (int i = 0; i < this.iconArray.length; ++i)
            {
                this.iconArray[i] = par1IconRegister.registerIcon(bowPullIconNameArray[i]);
            }
        }
    

     

    the png's this use are

    bow_pull_0.png

    bow_pull_1.png

    bow_pull_2.png

  2. yes that is the action? i dont understand your question?

    that is the action that is perfomred upon holding right click :/

    if you mean how to get it to happen to your texture then either it should auto happen in which case your coding is wrong somewhere or your texture is wrong, sometimes you have to have weird textures to suit actions, go and look at the bow texture in the items, but i think its probably the former.

  3. i have tried to create a condition that requires getting the player name but in eclipse it always starts the game with a random user name    -_- is there a way to start it with a certain username?

  4. i thought tenche was just the paint version for creating render code? like this part for the arrow?

       GL11.glRotatef(45.0F, 1.0F, 0.0F, 0.0F);
        GL11.glScalef(f10, f10, f10);
        GL11.glTranslatef(-4.0F, 0.0F, 0.0F);
        GL11.glNormal3f(f10, 0.0F, 0.0F);
        tessellator.startDrawingQuads();
        tessellator.addVertexWithUV(-7.0D, -2.0D, -2.0D, (double)f6, (double)f8);
        tessellator.addVertexWithUV(-7.0D, -2.0D, 2.0D, (double)f7, (double)f8);
        tessellator.addVertexWithUV(-7.0D, 2.0D, 2.0D, (double)f7, (double)f9);
        tessellator.addVertexWithUV(-7.0D, 2.0D, -2.0D, (double)f6, (double)f9);
        tessellator.draw();
        GL11.glNormal3f(-f10, 0.0F, 0.0F);
        tessellator.startDrawingQuads();
        tessellator.addVertexWithUV(-7.0D, 2.0D, -2.0D, (double)f6, (double)f8);
        tessellator.addVertexWithUV(-7.0D, 2.0D, 2.0D, (double)f7, (double)f8);
        tessellator.addVertexWithUV(-7.0D, -2.0D, 2.0D, (double)f7, (double)f9);
        tessellator.addVertexWithUV(-7.0D, -2.0D, -2.0D, (double)f6, (double)f9);
        tessellator.draw();
    
        for (int i = 0; i < 4; ++i)
        {
            GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
            GL11.glNormal3f(0.0F, 0.0F, f10);
            tessellator.startDrawingQuads();
            tessellator.addVertexWithUV(-8.0D, -2.0D, 0.0D, (double)f2, (double)f4);
            tessellator.addVertexWithUV(8.0D, -2.0D, 0.0D, (double)f3, (double)f4);
            tessellator.addVertexWithUV(8.0D, 2.0D, 0.0D, (double)f3, (double)f5);
            tessellator.addVertexWithUV(-8.0D, 2.0D, 0.0D, (double)f2, (double)f5);
            tessellator.draw();
        }
    

     

    with the tesselations and such

  5. COMPLETE!!! (fireworks in the background)

     

    @ForgeSubscribe
    	public void onDeath(LivingDeathEvent e){
    	if(e.entity instanceof EntityPlayer && !e.entity.worldObj.isRemote){
    	Entity killed = e.entity;
    	Entity killer = e.source.getEntity();
    	    Random randomGenerator = new Random();
    	    	int ran = randomGenerator.nextInt(25);
    	if (ran == 1 ||ran == 2 ||ran == 3 ||ran == 4 ||ran == 5 ||ran == 6 ||ran == 7){
    	killed.dropItem(ashtonsmod.Manure.itemID, 1);}
    	if (ran == 8 ||ran == 9 ||ran == 10 ||ran == 11 ||ran == 12 ||ran == 13 ||ran == 14){
    	killed.dropItem(Item.bone.itemID, 1);}
    	if (ran == 20 ||ran == 21 ||ran == 22 ||ran == 23 ||ran == 24){
    	killed.dropItem(ashtonsmod.Flesh.itemID, 1);}
    	if (ran == 25){
    	ItemStack charskull = new ItemStack(Item.skull, 1, 3);
    	killed.entityDropItem(charskull, 1);}
    	    
    	}}
    

     

    i also figured out how to change the meta data of the skull

  6. did you do the things above?

    try copy pasting some of my code to double check?

    double check the referanced classes ie everytime renderdagger is metioned make sure it is spelt correctly and such

    i know the above works as i am using it so you must be missing something somewhere what a said a min ago and if that doesnt work post your code and will take a look :)

  7. ok thankyou, two questions now on the related subject;

     

    @ForgeSubscribe
    	public void onDeath(LivingDeathEvent e){
    	if(e.entity instanceof EntityPlayer && !e.entity.worldObj.isRemote){
    	Entity killed = e.entity;
    	Entity killer = e.source.getEntity();
    	killed.dropItem(ashtonsmod.Manure.itemID, 1);
    	killed.dropItem(Item.bone.itemID, 1);
    	killed.dropItem(ashtonsmod.Flesh.itemID, 1);
    	killed.dropItem(Item.skull.itemID, 1);
    	}
    

    1) i am trying to make the player spawn items on death and this works however i would like to make it so that it spawns on of these not all of them, do i need an array list or somesuch? and how would i do this? ( i would also like to add percentage chance to the drops)

    2) skulls are a meta data item and this code drops a skele skull not a steve skull so how would i make it drop a steve skull? in crafting you add , metadatanumber after the item but dropitem only allows one number which in this case is the amount?

  8. okay i got it to work, so endershadow you need alot of classes to make one rendered throwable or shootable entity, you need a render class, an entity class and a item class, and you need to register the item entity and renderer in your main mod class then the entity and the rederer again in your client proxy, i wil ommit the basic item code in the main mode class as i presume you can do that part.

    P.S this is an example dagger.

    Main mod class (omitting basic item code)

    @Init
    proxy.registerRenderers();
    	EntityRegistry.registerModEntity(EntityRockSnowball.class, "RockSnowball", 2, this , 250, 1, false);
    

    Dagger Class

    package ashtonsmod.common;
    
    import net.minecraft.block.Block;
    import net.minecraft.client.renderer.texture.IconRegister;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.entity.projectile.EntitySnowball;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.world.World;
    
    public class Dagger extends Item
    {
        public Dagger(int par1)
        {
            super(par1);
            this.maxStackSize = 16;
        }
        
        public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
        {
            if (!par3EntityPlayer.capabilities.isCreativeMode)
            {
                --par1ItemStack.stackSize;
            }
    
            par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
    
            if (!par2World.isRemote)
            {
                par2World.spawnEntityInWorld(new EntityDagger(par2World, par3EntityPlayer));
            }
    
            return par1ItemStack;
        }
        
        @Override
       	public void updateIcons(IconRegister par1IconRegister)
        {
            this.iconIndex = par1IconRegister.registerIcon("ashtonsmod:Dagger");
        }}
    

    DaggerEntity

    package ashtonsmod.common;
    
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.entity.projectile.EntityThrowable;
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraft.util.DamageSource;
    import net.minecraft.util.MovingObjectPosition;
    import net.minecraft.world.World;
    
    public class EntityDagger extends EntityThrowable{
    
    public static final float ArrowShake = 0;
    
    public EntityDagger(World par1World) {
      super(par1World);
    }
    
    public EntityDagger(World par2World, EntityPlayer par3EntityPlayer) {
      super(par2World,par3EntityPlayer);
    }
    
    @Override
    protected void entityInit() {
    
    }
    
    @Override
    public void readEntityFromNBT(NBTTagCompound nbttagcompound) {
    
    }
    
    @Override
    public void writeEntityToNBT(NBTTagCompound nbttagcompound) {
    
    }
    
    @Override
    protected void onImpact(MovingObjectPosition par1MovingObjectPosition){
    
     if (par1MovingObjectPosition.entityHit != null)
      {
       par1MovingObjectPosition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), 5);
      }
      
      if (!this.worldObj.isRemote && this.rand.nextInt( == 0)
      {
       byte b0 = 1;
       
       if (this.rand.nextInt(32) == 0)
       {
        b0 = 4;
       }
      }
      
      if (!this.worldObj.isRemote)
      {
       this.setDead();
      }
      
    }
    
    }
    

    Dagger renderer

    package ashtonsmod.common;
    
    import net.minecraft.client.renderer.Tessellator;
    import net.minecraft.client.renderer.entity.Render;
    import net.minecraft.entity.Entity;
    import net.minecraft.util.MathHelper;
    
    import org.lwjgl.opengl.GL11;
    import org.lwjgl.opengl.GL12;
    
    public class RenderDagger extends Render
    {
    
    public RenderDagger()
    {
    } 
    
    public void renderDagger(EntityDagger par1EntityDagger, double par2, double par4, double par6, float par8, float par9)
    {
        this.loadTexture("/mods/ashtonsmod/textures/gui/dagger.png");
        GL11.glPushMatrix();
        GL11.glTranslatef((float)par2, (float)par4, (float)par6);
        GL11.glRotatef(par1EntityDagger.prevRotationYaw + (par1EntityDagger.rotationYaw - par1EntityDagger.prevRotationYaw) * par9 - 90.0F, 0.0F, 1.0F, 0.0F);
        GL11.glRotatef(par1EntityDagger.prevRotationPitch + (par1EntityDagger.rotationPitch - par1EntityDagger.prevRotationPitch) * par9, 0.0F, 0.0F, 1.0F);
        Tessellator tessellator = Tessellator.instance;
        byte b0 = 0;
        float f2 = 0.0F;
        float f3 = 0.5F;
        float f4 = (float)(0 + b0 * 10) / 32.0F;
        float f5 = (float)(5 + b0 * 10) / 32.0F;
        float f6 = 0.0F;
        float f7 = 0.15625F;
        float f8 = (float)(5 + b0 * 10) / 32.0F;
        float f9 = (float)(10 + b0 * 10) / 32.0F;
        float f10 = 0.05625F;
        GL11.glEnable(GL12.GL_RESCALE_NORMAL);
        float f11 = (float)par1EntityDagger.ArrowShake - par9;
    
        if (f11 > 0.0F)
        {
            float f12 = -MathHelper.sin(f11 * 3.0F) * f11;
            GL11.glRotatef(f12, 0.0F, 0.0F, 1.0F);
        }
    
        GL11.glRotatef(45.0F, 1.0F, 0.0F, 0.0F);
        GL11.glScalef(f10, f10, f10);
        GL11.glTranslatef(-4.0F, 0.0F, 0.0F);
        GL11.glNormal3f(f10, 0.0F, 0.0F);
        tessellator.startDrawingQuads();
        tessellator.addVertexWithUV(-7.0D, -2.0D, -2.0D, (double)f6, (double)f8);
        tessellator.addVertexWithUV(-7.0D, -2.0D, 2.0D, (double)f7, (double)f8);
        tessellator.addVertexWithUV(-7.0D, 2.0D, 2.0D, (double)f7, (double)f9);
        tessellator.addVertexWithUV(-7.0D, 2.0D, -2.0D, (double)f6, (double)f9);
        tessellator.draw();
        GL11.glNormal3f(-f10, 0.0F, 0.0F);
        tessellator.startDrawingQuads();
        tessellator.addVertexWithUV(-7.0D, 2.0D, -2.0D, (double)f6, (double)f8);
        tessellator.addVertexWithUV(-7.0D, 2.0D, 2.0D, (double)f7, (double)f8);
        tessellator.addVertexWithUV(-7.0D, -2.0D, 2.0D, (double)f7, (double)f9);
        tessellator.addVertexWithUV(-7.0D, -2.0D, -2.0D, (double)f6, (double)f9);
        tessellator.draw();
    
        for (int i = 0; i < 4; ++i)
        {
            GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
            GL11.glNormal3f(0.0F, 0.0F, f10);
            tessellator.startDrawingQuads();
            tessellator.addVertexWithUV(-8.0D, -2.0D, 0.0D, (double)f2, (double)f4);
            tessellator.addVertexWithUV(8.0D, -2.0D, 0.0D, (double)f3, (double)f4);
            tessellator.addVertexWithUV(8.0D, 2.0D, 0.0D, (double)f3, (double)f5);
            tessellator.addVertexWithUV(-8.0D, 2.0D, 0.0D, (double)f2, (double)f5);
            tessellator.draw();
        }
    
        GL11.glDisable(GL12.GL_RESCALE_NORMAL);
        GL11.glPopMatrix();
    }
    
    /**
    * 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.renderDagger((EntityDagger)par1Entity, par2, par4, par6, par8, par9);
    }
    }
    
    

    Client Proxy (i assume you already have one of these set up)

    package ashtonsmod.client;
    
    import ashtonsmod.common.EntityDagger;
    import ashtonsmod.common.EntityRockSnowball;
    import ashtonsmod.common.RenderDagger;
    import ashtonsmod.common.RenderRockSnowball;
    import ashtonsmod.common.RockSnowball;
    import cpw.mods.fml.client.registry.RenderingRegistry;
    import cpw.mods.fml.common.registry.EntityRegistry;
    import net.minecraft.client.renderer.entity.Render;
    import net.minecraft.src.ModLoader;
    import net.minecraftforge.client.MinecraftForgeClient;
    
    public class ClientProxyashtonsmod extends ashtonsmod.common.CommonProxy {
            	 @Override
                 public void registerRenderers() {
                  super.registerRenderers(); 
                     EntityRegistry.registerGlobalEntityID(EntityRockSnowball.class, "RockSnowball", ModLoader.getUniqueEntityId());
                     RenderingRegistry.registerEntityRenderingHandler(EntityRockSnowball.class, new RenderRockSnowball());
                     EntityRegistry.registerGlobalEntityID(EntityDagger.class, "Dagger", ModLoader.getUniqueEntityId());
                     RenderingRegistry.registerEntityRenderingHandler(EntityDagger.class, new RenderDagger());
            }
            
                     }
    }
    

  9. i have an entity arrow that works all crrectly but i dont know how to get it to look like what i want, it allways looks like the missing texture

    if you can help me fix this i can help this guy by posting the code for it.

     

    this part methinks

     

    this.loadTexture("/item/arrows.png");

×
×
  • Create New...

Important Information

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