Jump to content

Lightning_Eagle

Members
  • Posts

    2
  • Joined

  • Last visited

Everything posted by Lightning_Eagle

  1. I am having trouble with rendering my custom projectile. This is my first time using client and common proxies, so my apologies for my lack of skill. Main Class @SidedProxy(clientSide = "mymod.ClientProxy", serverSide = "mymod.CommonProxy") public static CommonProxy proxy; @EventHandler public void Load(FMLPreInitializationEvent Event) { proxy.registerRenderThings(); } Delcare public static Item RainbowSword_1; Load RainbowSword_1 = new RainbowSword(20721, REDSTONE, "rainbowsword"); GameRegistry.registerItem(RainbowSword_1, "RaibowSword"); LanguageRegistry.addName(RainbowSword_1, "Rainbow Sword"); package mymod; import mymod.entities.ExplosiveArrowRender; import mymod.entities.MyExplodingArrows; import mymod.entities.Rainbow; import mymod.entities.RenderRainbow; import mymod.items.RainbowSword; import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.item.Item; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.registry.EntityRegistry; public class ClientProxy extends CommonProxy{ @Override public void registerRenderThings(){ RenderingRegistry.registerEntityRenderingHandler(Rainbow.class, new RenderRainbow(Main.RainbowSword_1)); RenderingRegistry.registerEntityRenderingHandler(MyExplodingArrows.class, new ExplosiveArrowRender()); System.out.println("Random Mod: ClientProxy loaded"); } } package mymod; import mymod.entities.MyExplodingArrows; import mymod.entities.Rainbow; import mymod.entities.RenderRainbow; import net.minecraft.item.Item; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.registry.EntityRegistry; public class CommonProxy{ public void registerRenderThings(){ RenderingRegistry.registerEntityRenderingHandler(Rainbow.class, new RenderRainbow(Main.RainbowSword_1, 20721)); EntityRegistry.registerModEntity(Rainbow.class, "RainBow", 100, this, 10, 10, false); EntityRegistry.registerModEntity(MyExplodingArrows.class, "Arrow", 1000, this, 100, 10, false); } } package mymod.entities; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.monster.EntityBlaze; import net.minecraft.entity.projectile.EntitySnowball; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.util.DamageSource; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; public class Rainbow extends EntityThrowable { public Rainbow(World par1World) { super(par1World); } public Rainbow(World par1World, EntityLivingBase par2EntityLivingBase) { super(par1World, par2EntityLivingBase); } public Rainbow(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 = 15; if (par1MovingObjectPosition.entityHit instanceof EntityBlaze) { b0 = 3; } par1MovingObjectPosition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), (float)b0); } if (!this.worldObj.isRemote) { this.setDead(); } } } package mymod.entities; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.entity.Entity; import net.minecraft.entity.projectile.EntityPotion; import net.minecraft.item.Item; import net.minecraft.item.ItemPotion; import net.minecraft.potion.PotionHelper; import net.minecraft.util.Icon; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class RenderRainbow extends Render { private Item field_94151_a; private int field_94150_f; public RenderRainbow(Item par1Item, int par2) { this.field_94151_a = par1Item; this.field_94150_f = par2; } public RenderRainbow(Item par1Item) { this(par1Item, 0); } /** * 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) { Icon icon = this.field_94151_a.getIconFromDamage(this.field_94150_f); if (icon != null) { GL11.glPushMatrix(); GL11.glTranslatef((float)par2, (float)par4, (float)par6); GL11.glEnable(GL12.GL_RESCALE_NORMAL); GL11.glScalef(0.5F, 0.5F, 0.5F); this.bindEntityTexture(par1Entity); Tessellator tessellator = Tessellator.instance; if (icon == ItemPotion.func_94589_d("bottle_splash")) { int i = PotionHelper.func_77915_a(((EntityPotion)par1Entity).getPotionDamage(), false); float f2 = (float)(i >> 16 & 255) / 255.0F; float f3 = (float)(i >> 8 & 255) / 255.0F; float f4 = (float)(i & 255) / 255.0F; GL11.glColor3f(f2, f3, f4); GL11.glPushMatrix(); this.func_77026_a(tessellator, ItemPotion.func_94589_d("overlay")); GL11.glPopMatrix(); GL11.glColor3f(1.0F, 1.0F, 1.0F); } this.func_77026_a(tessellator, icon); GL11.glDisable(GL12.GL_RESCALE_NORMAL); GL11.glPopMatrix(); } } /** * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture. */ protected ResourceLocation getEntityTexture(Entity par1Entity) { return TextureMap.locationItemsTexture; } private void func_77026_a(Tessellator par1Tessellator, Icon par2Icon) { float f = par2Icon.getMinU(); float f1 = par2Icon.getMaxU(); float f2 = par2Icon.getMinV(); float f3 = par2Icon.getMaxV(); float f4 = 1.0F; float f5 = 0.5F; float f6 = 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); par1Tessellator.startDrawingQuads(); par1Tessellator.setNormal(0.0F, 1.0F, 0.0F); par1Tessellator.addVertexWithUV((double)(0.0F - f5), (double)(0.0F - f6), 0.0D, (double)f, (double)f3); par1Tessellator.addVertexWithUV((double)(f4 - f5), (double)(0.0F - f6), 0.0D, (double)f1, (double)f3); par1Tessellator.addVertexWithUV((double)(f4 - f5), (double)(f4 - f6), 0.0D, (double)f1, (double)f2); par1Tessellator.addVertexWithUV((double)(0.0F - f5), (double)(f4 - f6), 0.0D, (double)f, (double)f2); par1Tessellator.draw(); } }
  2. Please explain to me why this doesn't work? package mymod.items; import cpw.mods.fml.common.network.Player; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import mymod.Main; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumArmorMaterial; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; public class MyArmor2 extends ItemArmor{ private String texturePath = "mymod:textures/armor/"; private String iconPath = "mymod:"; public MyArmor2(int par1, EnumArmorMaterial par2EnumArmorMaterial, int par3, int par4, String myArmorName) { super(par1, par2EnumArmorMaterial, par3, par4); this.setMaxStackSize(1); this.setCreativeTab(CreativeTabs.tabCombat); this.SetArmorType(myArmorName, par4); } private void SetArmorType(String myArmorName, int par4) { switch(par4) { case 0: this.setUnlocalizedName("MyHelmet_2"); this.texturePath += myArmorName + "_3.png"; this.iconPath += "MyHelmet_2"; break; case 1: this.setUnlocalizedName("MyChest_2"); this.texturePath += myArmorName + "_3.png"; this.iconPath += "MyChest_2"; break; case 2: this.setUnlocalizedName("MyLeggings_2"); this.texturePath += myArmorName + "_4.png"; this.iconPath += "MyLeggings_2"; break; case 3: this.setUnlocalizedName("MyBoots_2"); this.texturePath += myArmorName + "_3.png"; this.iconPath += "MyBoots_2"; break; } } public void onArmorTickUpdate(World world, EntityPlayer player, ItemStack itemStack) { if (player.getCurrentItemOrArmor(4) != null && player.getCurrentArmor(3) != null && player.getCurrentItemOrArmor(2) != null && player.getCurrentItemOrArmor(1) != null) { ItemStack helmet = player.getCurrentItemOrArmor(4); ItemStack plate = player.getCurrentItemOrArmor(3); ItemStack legs = player.getCurrentItemOrArmor(2); ItemStack boots = player.getCurrentItemOrArmor(1); if (helmet.getItem() == Main.MyHelmet_2&& plate.getItem() == Main.MyChest_2&& legs.getItem() == Main.MyLeggings_2&& boots.getItem() == Main.MyBoots_2) { player.addPotionEffect(new PotionEffect(Potion.invisibility.id, 10, 0)); player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 10, 3)); player.fallDistance = 0.0F; player.capabilities.allowFlying = true; } if (helmet.getItem() != Main.MyHelmet_2|| plate.getItem() != Main.MyChest_2||legs.getItem() != Main.MyLeggings_2|| boots.getItem() != Main.MyBoots_2) { player.fallDistance = 10.0F; player.capabilities.allowFlying = false; } } } //@Override //public void onArmorTickUpdate(World world, EntityPlayer player, ItemStack stack) //{ //} @SideOnly(Side.CLIENT) public void registerIcons(IconRegister reg) { this.itemIcon = reg.registerIcon(this.iconPath); } public String getArmorTexture(ItemStack stack, Entity entity, int layer, int slot) { return this.texturePath; } } Thaks a lot!
×
×
  • Create New...

Important Information

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