Posted January 25, 201510 yr I cannot for the life of me figure out what I am missing. When I throw my custom entity, it works in all aspects except that it appears as a white cube. The texture for the item works, so my texture is good to go, I just can't seem to get my Entity to take on the texture. ItemCreeperHeart public class ItemCreeperHeart extends ItemRS { public ItemCreeperHeart(){ super(); this.maxStackSize = 16; this.setCreativeTab(RunesAndSilver.tabRunesAndSilver); this.setUnlocalizedName("CreeperHeart"); this.setTextureName("CreeperHeart"); } 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 EntityCreeperHeart(par2World, par3EntityPlayer)); } return par1ItemStack; } } EntityCreeperHeart public class EntityCreeperHeart extends EntityThrowable{ public EntityCreeperHeart(World world) { super(world); } public EntityCreeperHeart(World par1World, EntityLivingBase par3EntityPlayer) { super(par1World, par3EntityPlayer); } @SideOnly(Side.CLIENT) public EntityCreeperHeart(World par1World, double par2, double par4, double par6) { super(par1World, par2, par4, par6); } protected void onImpact(MovingObjectPosition par1MovingObjectPosition) { float f = 3.0F; if(!this.worldObj.isRemote){ boolean flag = this.worldObj.getGameRules().getGameRuleBooleanValue("mobGriefing"); this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, f, true); this.setDead(); } } } RenderCreeperHeart @SideOnly(Side.CLIENT) public class RenderCreeperHeart extends RenderSnowball { private static Item item; private int num; public RenderCreeperHeart(Item par1Item, int par2) { super(par1Item, par2); this.item = item; num = 2; } public RenderCreeperHeart(Item par1Item) { this(item, 0); } } ClientProxy public class ClientProxy extends CommonProxy{ @Override public void registerRenderers(){ RenderingRegistry.registerEntityRenderingHandler(EntityCreeperHeart.class, new RenderCreeperHeart(ModItems.CreeperHeart)); } } CommonProxy public abstract class CommonProxy implements IProxy { public void registerRenderers() { } } Main Class @Mod.EventHandler public void preInit(FMLPreInitializationEvent event){ ConfigurationHandler.init(event.getSuggestedConfigurationFile()); FMLCommonHandler.instance().bus().register(new ConfigurationHandler()); ModItems.init(); EntityRegistry.registerModEntity(EntityCreeperHeart.class, "CreeperHeart", ++modEntityIndex, this, 64, 10, true); } For a great reference on making a custom Throwable Item, check out this guys post: http://www.minecraftforum.net/forums/mapping-and-modding/mapping-and-modding-tutorials/1571527-forge-1-7-x-custom-item-with-throwable-entity
January 26, 201510 yr Are you sure your registerRenderers is ever called? I would you suggest you add breakpoints or System.out.println() to the key parts of your code to see which bit isn't getting called as you expect, for example - the renderer registration - the constructor - the doRender() in Snowball etc -TGG
January 26, 201510 yr Author It looks like it's my rendering class that is not getting called. Not sure why.
January 29, 201510 yr Author Wow. completely forgot to call my RegisterRender method from my preInit. I knew I was forgetting something simple.
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.