Jump to content

ashtonr12

Members
  • Posts

    479
  • Joined

  • Last visited

Everything posted by ashtonr12

  1. why dont you just create three identical blocks with three different drops and have them generate at different layers?
  2. why dont you just create three identical blocks with three different drops and have them generate at different layers?
  3. its not that its a coding problem as if it were that then the render would come up as missing texture while in flight. why dont you just use the code i provided you with? since we know that works.
  4. if you want it to look like an arrow what good is it using the snowball renderer?
  5. 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
  6. your right it does add a lot of plant but they are all shoved into pre existing plant types, no new ones made
  7. 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.
  8. 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?
  9. you just want the action? try public EnumAction getItemUseAction(ItemStack par1ItemStack) { return EnumAction.bow; } just plonk that right in there
  10. 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
  11. 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
  12. 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
  13. 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?
  14. 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()); } } }
  15. 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");
  16. ok so im not to great with java atm but i found this http://linode.narc.ro/forge-javadoc/net/minecraftforge/event/entity/living/LivingSpawnEvent.html but i dont know how to use it An example would be most helpful but i can understand if you don't want to provide one as some people think it is you writing my mod for me, as i have been told before
  17. i just need to know the block underneath itself's type, i should do this with coods too? if so how?
  18. sorry heads, like creeper head, steve head, etc.
×
×
  • Create New...

Important Information

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