Jump to content

averysumner

Members
  • Posts

    33
  • Joined

  • Last visited

Converted

  • Gender
    Male
  • Location
    USA
  • Personal Text
    I make Minecraft mods.

averysumner's Achievements

Tree Puncher

Tree Puncher (2/8)

0

Reputation

  1. It is called in PreInit: package com.averysumner.randomstuff; import net.minecraft.util.datafix.DataFixer; import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; public class ClientProxy extends CommonProxy { @Override public void preInit(FMLPreInitializationEvent e) { super.preInit(e); ModItems.init(); ModEntities.registerEntities(); ModEntities.registerRenders(); } @Override public void init(FMLInitializationEvent e) { super.init(e); } @Override public void postInit(FMLPostInitializationEvent e) { super.postInit(e); } }
  2. My Slimeball Entity's texture isn't loading, heres the code: EntitySlimeball.class: package com.averysumner.randomstuff; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.monster.EntityBlaze; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.util.DamageSource; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.datafix.DataFixer; import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.World; public class EntitySlimeball extends EntityThrowable { public EntitySlimeball(World worldIn) { super(worldIn); } public EntitySlimeball(World worldIn, EntityLivingBase throwerIn) { super(worldIn, throwerIn); } public EntitySlimeball(World worldIn, double x, double y, double z) { super(worldIn, x, y, z); } public static void func_189662_a(DataFixer p_189662_0_) { EntityThrowable.func_189661_a(p_189662_0_, "Slimeball"); } /** * Called when this EntityThrowable hits a block or entity. */ protected void onImpact(RayTraceResult result) { if (result.entityHit != null) { int i = 0; if (result.entityHit instanceof EntityBlaze) { i = 3; } result.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), (float)i); } for (int j = 0; j < 8; ++j) { this.worldObj.spawnParticle(EnumParticleTypes.SLIME, this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D, new int[0]); } if (!this.worldObj.isRemote) { this.setDead(); } } } ModEntities(Rendering and Entity register): package com.averysumner.randomstuff; import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.entity.Entity; import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.projectile.EntitySnowball; import net.minecraft.init.Biomes; import net.minecraft.init.Items; import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.common.registry.EntityRegistry; public class ModEntities { public static int id = 0; public static int index; public static Entity brownbear; public static Entity slimeball; public static void registerEntities() { registerModEntity(EntityBrownBear.class, "brownbear", 0x228717, 0xE2F048); registerModProjectile(EntitySlimeball.class, "slimeball"); } public static void registerRenders() { RenderingRegistry.registerEntityRenderingHandler(EntitySlimeball.class, new ProjectileRenderFactory()); } @SuppressWarnings({ "rawtypes", "unchecked" }) public static void registerModEntity(Class entityClass, String name, int primaryColor, int secondaryColor) { EntityRegistry.registerModEntity(entityClass, name, ++id, RandomStuff.instance, 80, 3, false); EntityRegistry.registerEgg(entityClass, primaryColor, secondaryColor); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.FOREST); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.BIRCH_FOREST); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.BIRCH_FOREST_HILLS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.EXTREME_HILLS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.EXTREME_HILLS_EDGE); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.EXTREME_HILLS_WITH_TREES); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.FOREST_HILLS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_BIRCH_FOREST); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_BIRCH_FOREST_HILLS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_EXTREME_HILLS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_EXTREME_HILLS_WITH_TREES); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_FOREST); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_PLAINS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_REDWOOD_TAIGA); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_REDWOOD_TAIGA_HILLS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_FOREST); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.PLAINS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.REDWOOD_TAIGA); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.REDWOOD_TAIGA_HILLS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.ROOFED_FOREST); System.out.println("Registering Entity " + name + " with ID " + id); } @SuppressWarnings({ "rawtypes", "unchecked"}) public static void registerModProjectile(Class entityClass, String name){ EntityRegistry.registerModEntity(entityClass, name, id, RandomStuff.instance, 64, 10, true); System.out.println("Registering Projectile " + name + " with ID " + id); } } RenderProjectile: package com.averysumner.randomstuff; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.RenderItem; import net.minecraft.client.renderer.block.model.ItemCameraTransforms; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.entity.Entity; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class RenderProjectile extends Render { private final RenderItem ri; public RenderProjectile(RenderManager rm) { super(rm); this.ri = Minecraft.getMinecraft().getRenderItem(); } @Override protected ResourceLocation getEntityTexture(Entity entity) { return new ResourceLocation("minecraft:items/slimeball"); } @Override public void doRender(Entity entity, double x, double y, double z, float f, float partialTicks) { GlStateManager.pushMatrix(); GlStateManager.translate((float) x, (float) y, (float) z); GlStateManager.enableRescaleNormal(); GlStateManager.scale(0.5F, 0.5F, 0.5F);//TODO: Possibly change scale GlStateManager.rotate(-this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); GlStateManager.rotate(this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); this.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); this.ri.renderItem(new ItemStack(Items.SLIME_BALL), ItemCameraTransforms.TransformType.GROUND); GlStateManager.disableRescaleNormal(); GlStateManager.popMatrix(); super.doRender(entity, x, y, z, f, partialTicks); } ProjectileRenderFactory: package com.averysumner.randomstuff; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.item.Item; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.client.registry.IRenderFactory; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class ProjectileRenderFactory implements IRenderFactory<EntitySlimeball> { @Override public Render<? super EntitySlimeball> createRenderFor(RenderManager manager) { return new RenderProjectile(manager); } } ThrowableSlimeball (What spawns the entity): package com.averysumner.randomstuff; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntitySnowball; import net.minecraft.init.Items; import net.minecraft.init.SoundEvents; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.StatList; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; import net.minecraft.util.SoundCategory; import net.minecraft.world.World; import net.minecraftforge.event.ForgeEventFactory; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.registry.GameRegistry; public class ThrowableSlimeball extends Item { @SubscribeEvent public void playerRightClickSlime(PlayerInteractEvent.RightClickItem e){ if (e.getEntityPlayer().getHeldItemMainhand().getItem() == Items.SLIME_BALL) { ItemStack playerHeld = e.getEntityPlayer().getHeldItemMainhand(); System.out.println("Slime right clicked!"); if (!e.getEntityPlayer().capabilities.isCreativeMode) { --e.getEntityPlayer().getHeldItemMainhand().stackSize; } if (e.getEntityPlayer().getHeldItemMainhand().stackSize == 0) { playerHeld = null; ForgeEventFactory.onPlayerDestroyItem(e.getEntityPlayer(), e.getEntityPlayer().getHeldItemMainhand(), e.getEntityPlayer().getActiveHand()); } e.getWorld().playSound((EntityPlayer)null, e.getEntityPlayer().posX, e.getEntityPlayer().posY, e.getEntityPlayer().posZ, SoundEvents.ENTITY_SLIME_SQUISH, SoundCategory.NEUTRAL, 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); if (!e.getWorld().isRemote) { EntitySlimeball entityslimeball = new EntitySlimeball(e.getWorld(), e.getEntityPlayer()); entityslimeball.setHeadingFromThrower(e.getEntityPlayer(), e.getEntityPlayer().rotationPitch, e.getEntityPlayer().rotationYaw, 0.0F, 1.5F, 1.0F); e.getWorld().spawnEntityInWorld(entityslimeball); } e.setCanceled(true); } } }
  3. Hey fireplace, I made it a lot more simple by modifying your simpler render class, but I still get no textures. I posted my registry in an older post.
  4. Entity/Render Registry: package com.averysumner.randomstuff; import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.entity.Entity; import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.projectile.EntitySnowball; import net.minecraft.init.Biomes; import net.minecraft.init.Items; import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.common.registry.EntityRegistry; public class ModEntities { public static int id = 0; public static int index; public static Entity brownbear; public static Entity slimeball; public static void registerEntities() { registerModEntity(EntityBrownBear.class, "brownbear", 0x228717, 0xE2F048); registerModProjectile(EntitySlimeball.class, "slimeball"); } public static void registerRenders() { RenderingRegistry.registerEntityRenderingHandler(EntitySlimeball.class, new ProjectileRenderFactory(Items.SLIME_BALL)); } @SuppressWarnings({ "rawtypes", "unchecked" }) public static void registerModEntity(Class entityClass, String name, int primaryColor, int secondaryColor) { EntityRegistry.registerModEntity(entityClass, name, ++id, RandomStuff.instance, 80, 3, false); EntityRegistry.registerEgg(entityClass, primaryColor, secondaryColor); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.FOREST); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.BIRCH_FOREST); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.BIRCH_FOREST_HILLS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.EXTREME_HILLS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.EXTREME_HILLS_EDGE); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.EXTREME_HILLS_WITH_TREES); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.FOREST_HILLS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_BIRCH_FOREST); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_BIRCH_FOREST_HILLS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_EXTREME_HILLS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_EXTREME_HILLS_WITH_TREES); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_FOREST); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_PLAINS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_REDWOOD_TAIGA); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_REDWOOD_TAIGA_HILLS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.MUTATED_FOREST); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.PLAINS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.REDWOOD_TAIGA); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.REDWOOD_TAIGA_HILLS); EntityRegistry.addSpawn(entityClass, 6, 1, 5, EnumCreatureType.CREATURE, Biomes.ROOFED_FOREST); System.out.println("Registering Entity " + name + " with ID " + id); } @SuppressWarnings({ "rawtypes", "unchecked"}) public static void registerModProjectile(Class entityClass, String name){ EntityRegistry.registerModEntity(entityClass, name, id, RandomStuff.instance, 64, 10, true); System.out.println("Registering Projectile " + name + " with ID " + id); } } ClientProxy: package com.averysumner.randomstuff; import net.minecraft.util.datafix.DataFixer; import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; public class ClientProxy extends CommonProxy { @Override public void preInit(FMLPreInitializationEvent e) { super.preInit(e); ModItems.init(); ModEntities.registerEntities(); ModEntities.registerRenders(); } @Override public void init(FMLInitializationEvent e) { super.init(e); } @Override public void postInit(FMLPostInitializationEvent e) { super.postInit(e); } }
  5. Everything is working besides the texture. Also, if I get in front of the hitbox, it pushes me forwards as I shoot. Heres the code for my renderer, my render factory, and my entity class, can you tell me what's wrong?: Renderer package com.averysumner.randomstuff; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.RenderItem; import net.minecraft.client.renderer.block.model.ItemCameraTransforms; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.entity.Entity; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class RenderProjectile extends Render { protected final Item itr; private final RenderItem ri; private ResourceLocation itemTexture; public RenderProjectile(RenderManager rm, Item projectile) { super(rm); this.itr = projectile; this.ri = Minecraft.getMinecraft().getRenderItem(); } public RenderProjectile(RenderManager rm, Item projectile, ResourceLocation texture) { super(rm); this.itr = projectile; this.ri = Minecraft.getMinecraft().getRenderItem(); this.itemTexture = texture; } @Override protected ResourceLocation getEntityTexture(Entity entity) { if (this.itr == Items.SLIME_BALL) return new ResourceLocation("minecraft:items/slimeball"); else if (this.itemTexture != null) return itemTexture; else return new ResourceLocation("minecraft:items/coal"); } @Override public void doRender(Entity entity, double x, double y, double z, float f, float partialTicks) { GlStateManager.pushMatrix(); GlStateManager.translate((float) x, (float) y, (float) z); GlStateManager.enableRescaleNormal(); GlStateManager.scale(0.5F, 0.5F, 0.5F); GlStateManager.rotate(-this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); GlStateManager.rotate(this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); this.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); this.ri.renderItem(new ItemStack(this.itr), ItemCameraTransforms.TransformType.GROUND); GlStateManager.disableRescaleNormal(); GlStateManager.popMatrix(); super.doRender(entity, x, y, z, f, partialTicks); } } RenderFactory package com.averysumner.randomstuff; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.item.Item; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.client.registry.IRenderFactory; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class ProjectileRenderFactory implements IRenderFactory<EntitySlimeball> { private Item projectile; private ResourceLocation location; public ProjectileRenderFactory(Item item){ projectile=item; } public ProjectileRenderFactory(Item item, ResourceLocation loc){ projectile=item; location=loc; } @Override public Render<? super EntitySlimeball> createRenderFor(RenderManager manager) { if(location != null) return new RenderProjectile(manager, projectile, location); else return new RenderProjectile(manager, projectile); } } Entity package com.averysumner.randomstuff; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.monster.EntityBlaze; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.util.DamageSource; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.datafix.DataFixer; import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.World; public class EntitySlimeball extends EntityThrowable { public EntitySlimeball(World worldIn) { super(worldIn); } public EntitySlimeball(World worldIn, EntityLivingBase throwerIn) { super(worldIn, throwerIn); } public EntitySlimeball(World worldIn, double x, double y, double z) { super(worldIn, x, y, z); } public static void func_189662_a(DataFixer p_189662_0_) { EntityThrowable.func_189661_a(p_189662_0_, "Slimeball"); } /** * Called when this EntityThrowable hits a block or entity. */ protected void onImpact(RayTraceResult result) { if (result.entityHit != null) { int i = 0; if (result.entityHit instanceof EntityBlaze) { i = 3; } result.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), (float)i); } for (int j = 0; j < 8; ++j) { this.worldObj.spawnParticle(EnumParticleTypes.SLIME, this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D, new int[0]); } if (!this.worldObj.isRemote) { this.setDead(); } } }
  6. I got everything working, besides rendering my slimeball entity. When I use "RenderingRegistry.registerEntityRenderingHandler" I get @Deprecated, even if I use the factory version.
  7. I'm an idiot. I didn't register the EventHandler. Thanks!
  8. itemRand wont work if it is not extending item. Besides that, there is no reason.
  9. Still not getting it to work even with everything you said, heres the code: package com.averysumner.randomstuff; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntitySnowball; import net.minecraft.init.Items; import net.minecraft.init.SoundEvents; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.StatList; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; import net.minecraft.util.SoundCategory; import net.minecraft.world.World; import net.minecraftforge.event.ForgeEventFactory; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.registry.GameRegistry; public class ThrowableSlimeball { @SubscribeEvent public void playerRightClickSlime(PlayerInteractEvent.RightClickItem e){ if (e.getEntityPlayer().getHeldItemMainhand().getItem() == Items.SLIME_BALL) { ItemStack playerHeld = e.getEntityPlayer().getHeldItemMainhand(); System.out.println("Slime right clicked!"); if (!e.getEntityPlayer().capabilities.isCreativeMode) { --e.getEntityPlayer().getHeldItemMainhand().stackSize; } if (e.getEntityPlayer().getHeldItemMainhand().stackSize == 0) { playerHeld = null; ForgeEventFactory.onPlayerDestroyItem(e.getEntityPlayer(), e.getEntityPlayer().getHeldItemMainhand(), e.getEntityPlayer().getActiveHand()); } e.getWorld().playSound((EntityPlayer)null, e.getEntityPlayer().posX, e.getEntityPlayer().posY, e.getEntityPlayer().posZ, SoundEvents.ENTITY_SLIME_SQUISH, SoundCategory.NEUTRAL, 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); if (!e.getWorld().isRemote) { EntitySnowball entitysnowball = new EntitySnowball(e.getWorld(), e.getEntityPlayer()); entitysnowball.setHeadingFromThrower(e.getEntityPlayer(), e.getEntityPlayer().rotationPitch, e.getEntityPlayer().rotationYaw, 0.0F, 1.5F, 1.0F); e.getWorld().spawnEntityInWorld(entitysnowball); } e.setCanceled(true); } } } Btw, I am just spawning snowballs atm to test it.
  10. I may just be being stupid, but I don't think this is supposed to happen. In this code it tells me that "getCurrectEquippedItem" is undefined for EntityPlayer: package com.averysumner.randomstuff; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntitySnowball; import net.minecraft.init.Items; import net.minecraft.init.SoundEvents; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.StatList; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; import net.minecraft.util.SoundCategory; import net.minecraft.world.World; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.registry.GameRegistry; public class ThrowableSlimeball extends Item { public ThrowableSlimeball(String registryName, String unlocalizedName) { setRegistryName(registryName); setUnlocalizedName(unlocalizedName); GameRegistry.register(this); } @SubscribeEvent public void playerRightClickSlime(PlayerInteractEvent.RightClickItem e){ if (e.getEntityPlayer().getCurrentEquippedItem().getItem() == Items.SLIME_BALL) { } } }
  11. Im not creating and registering an item. Im using the vanilla slimeball.
  12. package com.averysumner.randomstuff; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntitySnowball; import net.minecraft.init.Items; import net.minecraft.init.SoundEvents; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.StatList; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; import net.minecraft.util.SoundCategory; import net.minecraft.world.World; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class ThrowableSlimeball extends Item { public ThrowableSlimeball(String registryName, String unlocalizedName) { setRegistryName(registryName); setUnlocalizedName(unlocalizedName); GameRegistry.register(this); } public ActionResult<ItemStack> onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, EnumHand hand) { if(itemStackIn == new ItemStack(Items.SLIME_BALL)){ System.out.println("SLIMEBALL CLICKED!"); if (!playerIn.capabilities.isCreativeMode) { --itemStackIn.stackSize; } worldIn.playSound((EntityPlayer)null, playerIn.posX, playerIn.posY, playerIn.posZ, SoundEvents.ENTITY_SLIME_SQUISH, SoundCategory.NEUTRAL, 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); if (!worldIn.isRemote) { EntitySnowball entityslimeball = new EntitySnowball(worldIn, playerIn); entityslimeball.setHeadingFromThrower(playerIn, playerIn.rotationPitch, playerIn.rotationYaw, 0.0F, 1.5F, 1.0F); worldIn.spawnEntityInWorld(entityslimeball); } playerIn.addStat(StatList.getObjectUseStats(this)); return new ActionResult(EnumActionResult.SUCCESS, itemStackIn); } return new ActionResult(EnumActionResult.FAIL, itemStackIn); } } I may just be being stupid here, but even if I'm holding a slimeball it doesn't go through. Can someone help me?
  13. So, I want to make slimeballs throwable. I have a class and everything for throwables that works, only problem is I only know how to turn my custom items into throwables. Can someone tell me how to turn a vanilla item into a throwable without breaking other mods? -Avery
  14. Can someone point me to an example, tutorial or just explain how to use getArmorModel? -Avery
×
×
  • Create New...

Important Information

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