Jump to content

MrNegaBlox

Members
  • Posts

    74
  • Joined

  • Last visited

Everything posted by MrNegaBlox

  1. Please Help
  2. And then?
  3. I know you wont help me, so can people tell me what to do? I will update my post to have the files. But I still need Help, Like how do you do a packet handler
  4. What do I do to sync the client and server? I still need help
  5. Sooo What do I do?
  6. So I started up my Mod and I put down My Tile Entity Block, and right click it. Then the STDOUT reads [WARNING] [ForgeModLoader] A mod tried to open a gui on the server without being a NetworkMod Main Class: package KitchenCraft.MainClass; import KitchenCraft.MainClass.CounterProperties.CounterGuiHandler; import net.minecraft.block.Block; import net.minecraft.block.BlockBreakable; import net.minecraft.block.BlockFurnace; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.src.ModLoader; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.Configuration; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid="GummyBah", name="GummyBear", version="1.0.0") @NetworkMod(clientSideRequired=true, serverSideRequired=false) public class Main { public static CreativeTabs tabBlasters = new CreativeTabs("tabBlasters") { public ItemStack getIconItemStack() { return new ItemStack(Item.diamond, 1, 0); } }; // The instance of your mod that Forge uses. @Instance("Test") public static Main instance; // Says where the client and server 'proxy' code is loaded. @SidedProxy(clientSide="KitchenCraft.MainClass.client.ClientProxy", serverSide="KitchenCraft.MainClass.CommonProxy") public static CommonProxy proxy; public Block Counter = new Counter(1408); @EventHandler public void preInit(FMLPreInitializationEvent event) { Configuration config = new Configuration(event.getSuggestedConfigurationFile()); config.load(); config.save(); } @EventHandler public void Init(FMLInitializationEvent event) { NetworkRegistry.instance().registerGuiHandler(this, new CounterGuiHandler()); GameRegistry.registerBlock(Counter, "Counter"); LanguageRegistry.addName(Counter, "Counter"); GameRegistry.registerTileEntity(KitchenCraft.MainClass.CounterProperties.CounterTileEnity.class, "Counter"); LanguageRegistry.instance().addStringLocalization("carmel", "en_US", "Carmalizer"); LanguageRegistry.instance().addStringLocalization("tabBlasters", "en_US", "Gummy Mod"); proxy.registerRenderers(); } @EventHandler public void postInit(FMLPostInitializationEvent event) { // Stub Method } }
  7. Umm... That just gives a speed boost to the pig. That doesn't control it, it just checks if it is controlling it
  8. Thank you so much! It moves when I tell it, just one problem. When I move, I let go of the key and the mob teleports back to its origin. Here is my code: Mob Code: package bettermc.test.phoenixmob; import net.minecraft.entity.EntityAgeable; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.ai.EntityAIControlledByPlayer; import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; import net.minecraft.world.World; public class EntityPhoenix extends EntityAnimal { private boolean leap; public String myName; public EntityPhoenix(World par1World) { super(par1World); this.setSize(0.6F, 1.8F); Name = "Jeep"; stationary = false; } String Name; protected void updateEntityActionState() { } public boolean isAIEnabled() { return true; } protected void updateAITasks() { super.updateAITasks(); } public int getMaxHealth() { return 50; } /** * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden * by a player and the player is holding a carrot-on-a-stick */ public boolean canBeSteered() { return true; } public void updateRidden() { if(ridingEntity.isDead) { ridingEntity = null; return; } motionX = 0.0D; motionZ = 0.0D; motionY = 0.0D; onUpdate(); //onUpdate(); if(ridingEntity == null) { return; } } public boolean interact(EntityPlayer entityplayer) { if(riddenByEntity != null && (riddenByEntity instanceof EntityPlayer) && riddenByEntity != entityplayer) { return true; } if(!worldObj.isRemote) { entityplayer.mountEntity(this); } ItemStack itemstack = entityplayer.getCurrentEquippedItem(); if (itemstack != null && itemstack.itemID == bettermc.test.Main.Oore.itemID) { if (!worldObj.isRemote) { EntityLiving entitytalljake = new EntityPhoenix(worldObj); entitytalljake.setLocationAndAngles(posX, posY, posZ, rotationYaw, rotationPitch); worldObj.spawnEntityInWorld(entitytalljake); setDead(); itemstack.stackSize--; } return true; } return leap; } /** * Called when the mob's health reaches 0. */ public void onDeath(DamageSource par1DamageSource) { } public void moveEntity(double d, double d1, double d2) { if(riddenByEntity != null) { stationary = true; motionX += riddenByEntity.motionX*10; // * 0.20000000000000001D; motionZ += riddenByEntity.motionZ*10; // * 0.20000000000000001D; if(isCollidedHorizontally) { if(onGround) //else not fly { motionY += 0.5F;//let it try to jump over obstacle } } super.moveEntity(motionX, motionY, motionZ); }else { super.moveEntity(d, d1, d2); stationary = true; } } protected boolean isMovementCeased() { return stationary; } public void writeEntityToNBT(NBTTagCompound nbttagcompound) { super.writeEntityToNBT(nbttagcompound); } public void readEntityFromNBT(NBTTagCompound nbttagcompound) { super.readEntityFromNBT(nbttagcompound); } protected String getLivingSound() { return "none"; } protected String getHurtSound() { return "none"; } protected String getDeathSound() { return "none"; } protected void playStepSound(int par1, int par2, int par3, int par4) { this.func_85030_a("mob.irongolem.walk", 1.0F, 1.0F); } private void func_85030_a(String string, float f, float g) { // TODO Auto-generated method stub } public boolean stationary; protected float getSoundVolume() { return 0.4F; } @Override public EntityAgeable createChild(EntityAgeable entityageable) { // TODO Auto-generated method stub return null; } }
  9. ...Already tried. It don't exist therefore I can't extend it. That is why i went here cause I found NOTHING ON CONTROLLING THE MOBS YOU ARE RIDING
  10. I have made a mob and I can mount it, but I can't make it be controlled by the player. I have looked for tutorials and looked at the horse, minecart and pig classes, yet found nothing. Can you please tell me how?
  11. Yes, But I just didn't know where to find the events. I looked in Entity Class and found no Interact thing.
  12. So How could I animate an action in a mob seperate from what it usually does. Im trying to do something like if(onGround){ //animation code } But How?
  13. So I checked the Entity.class and I can't find anything that can detect rightclicking a mob. Can you please tell me how to do So?
  14. So I was rendering a mob, and it all came along well with a new spawn egg and all, but when I use it. I crash from the rendering. Can you please look at the code and tell me whats wrong? I'm relatively new to modding. Stack Trace ---- Minecraft Crash Report ---- 2014-02-08 11:51:38 [iNFO] [sTDOUT] // You're mean. 2014-02-08 11:51:38 [iNFO] [sTDOUT] 2014-02-08 11:51:38 [iNFO] [sTDOUT] Time: 2/8/14 11:51 AM 2014-02-08 11:51:38 [iNFO] [sTDOUT] Description: Rendering entity in world 2014-02-08 11:51:38 [iNFO] [sTDOUT] 2014-02-08 11:51:38 [iNFO] [sTDOUT] java.lang.NullPointerException 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.renderer.entity.RendererLivingEntity.func_130000_a(RendererLivingEntity.java:79) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.renderer.entity.RenderLiving.doRenderLiving(RenderLiving.java:28) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at bettermc.test.phoenixmob.PhoenixRender.renderPhoenix(PhoenixRender.java:22) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at bettermc.test.phoenixmob.PhoenixRender.doRender(PhoenixRender.java:38) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.renderer.entity.RenderManager.renderEntityWithPosYaw(RenderManager.java:312) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.renderer.entity.RenderManager.renderEntity(RenderManager.java:281) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:524) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1160) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1006) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:934) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:826) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.main.Main.main(Main.java:93) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at java.lang.reflect.Method.invoke(Unknown Source) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.launchwrapper.Launch.launch(Launch.java:57) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.launchwrapper.Launch.main(Launch.java:18) 2014-02-08 11:51:38 [iNFO] [sTDOUT] 2014-02-08 11:51:38 [iNFO] [sTDOUT] 2014-02-08 11:51:38 [iNFO] [sTDOUT] A detailed walkthrough of the error, its code path and all known details is as follows: 2014-02-08 11:51:38 [iNFO] [sTDOUT] --------------------------------------------------------------------------------------- 2014-02-08 11:51:38 [iNFO] [sTDOUT] 2014-02-08 11:51:38 [iNFO] [sTDOUT] -- Head -- 2014-02-08 11:51:38 [iNFO] [sTDOUT] Stacktrace: 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.renderer.entity.RendererLivingEntity.func_130000_a(RendererLivingEntity.java:79) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.renderer.entity.RenderLiving.doRenderLiving(RenderLiving.java:28) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at bettermc.test.phoenixmob.PhoenixRender.renderPhoenix(PhoenixRender.java:22) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at bettermc.test.phoenixmob.PhoenixRender.doRender(PhoenixRender.java:38) 2014-02-08 11:51:38 [iNFO] [sTDOUT] 2014-02-08 11:51:38 [iNFO] [sTDOUT] -- Entity being rendered -- 2014-02-08 11:51:38 [iNFO] [sTDOUT] Details: 2014-02-08 11:51:38 [iNFO] [sTDOUT] Entity Type: Phoenix (bettermc.test.phoenixmob.PhoenixEntityClass) 2014-02-08 11:51:38 [iNFO] [sTDOUT] Entity ID: 2595 2014-02-08 11:51:38 [iNFO] [sTDOUT] Entity Name: entity.Phoenix.name 2014-02-08 11:51:38 [iNFO] [sTDOUT] Entity's Exact location: -782.50, 4.00, -1135.50 2014-02-08 11:51:38 [iNFO] [sTDOUT] Entity's Block location: World: (-783,4,-1136), Chunk: (at 1,0,0 in -49,-71; contains blocks -784,0,-1136 to -769,255,-1121), Region: (-2,-3; contains chunks -64,-96 to -33,-65, blocks -1024,0,-1536 to -513,255,-1025) 2014-02-08 11:51:38 [iNFO] [sTDOUT] Entity's Momentum: 0.00, 0.00, 0.00 2014-02-08 11:51:38 [iNFO] [sTDOUT] 2014-02-08 11:51:38 [iNFO] [sTDOUT] -- Renderer details -- 2014-02-08 11:51:38 [iNFO] [sTDOUT] Details: 2014-02-08 11:51:38 [iNFO] [sTDOUT] Assigned renderer: bettermc.test.phoenixmob.PhoenixRender@1b03d90 2014-02-08 11:51:38 [iNFO] [sTDOUT] Location: 0.18,-1.62,1.71 - World: (0,-2,1), Chunk: (at 0,-1,1 in 0,0; contains blocks 0,0,0 to 15,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) 2014-02-08 11:51:38 [iNFO] [sTDOUT] Rotation: 4.21875 2014-02-08 11:51:38 [iNFO] [sTDOUT] Delta: 0.20637262 2014-02-08 11:51:38 [iNFO] [sTDOUT] Stacktrace: 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.renderer.entity.RenderManager.renderEntityWithPosYaw(RenderManager.java:312) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.renderer.entity.RenderManager.renderEntity(RenderManager.java:281) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:524) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1160) 2014-02-08 11:51:38 [iNFO] [sTDOUT] 2014-02-08 11:51:38 [iNFO] [sTDOUT] -- Affected level -- 2014-02-08 11:51:38 [iNFO] [sTDOUT] Details: 2014-02-08 11:51:38 [iNFO] [sTDOUT] Level name: MpServer 2014-02-08 11:51:38 [iNFO] [sTDOUT] All players: 1 total; [EntityClientPlayerMP['Player825'/138, l='MpServer', x=-782.68, y=5.62, z=-1137.21]] 2014-02-08 11:51:38 [iNFO] [sTDOUT] Chunk stats: MultiplayerChunkCache: 441 2014-02-08 11:51:38 [iNFO] [sTDOUT] Level seed: 0 2014-02-08 11:51:38 [iNFO] [sTDOUT] Level generator: ID 01 - flat, ver 0. Features enabled: false 2014-02-08 11:51:38 [iNFO] [sTDOUT] Level generator options: 2014-02-08 11:51:38 [iNFO] [sTDOUT] Level spawn location: World: (-607,4,-1163), Chunk: (at 1,0,5 in -38,-73; contains blocks -608,0,-1168 to -593,255,-1153), Region: (-2,-3; contains chunks -64,-96 to -33,-65, blocks -1024,0,-1536 to -513,255,-1025) 2014-02-08 11:51:38 [iNFO] [sTDOUT] Level time: 148949 game time, 400 day time 2014-02-08 11:51:38 [iNFO] [sTDOUT] Level dimension: 0 2014-02-08 11:51:38 [iNFO] [sTDOUT] Level storage version: 0x00000 - Unknown? 2014-02-08 11:51:38 [iNFO] [sTDOUT] Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false) 2014-02-08 11:51:38 [iNFO] [sTDOUT] Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false 2014-02-08 11:51:38 [iNFO] [sTDOUT] Forced entities: 115 total; [EntityVillager['Villager'/0, l='MpServer', x=-791.91, y=9.00, z=-1179.50], EntityVillager['Villager'/1, l='MpServer', x=-792.69, y=9.00, z=-1179.50], EntityVillager['Villager'/2, l='MpServer', x=-793.53, y=3.00, z=-1174.44], EntityVillager['Villager'/3, l='MpServer', x=-794.31, y=4.00, z=-1178.78], EntityVillager['Villager'/4, l='MpServer', x=-797.50, y=5.00, z=-1173.88], EntityVillager['Villager'/5, l='MpServer', x=-787.84, y=4.00, z=-1176.34], EntityVillager['Villager'/6, l='MpServer', x=-792.69, y=5.00, z=-1180.06], EntityVillager['Villager'/7, l='MpServer', x=-792.69, y=5.00, z=-1180.91], EntityVillager['Villager'/8, l='MpServer', x=-786.00, y=4.00, z=-1173.63], EntityVillager['Villager'/9, l='MpServer', x=-785.13, y=5.00, z=-1167.69], EntityVillager['Villager'/10, l='MpServer', x=-787.69, y=5.00, z=-1169.69], EntityVillager['Villager'/11, l='MpServer', x=-790.88, y=4.00, z=-1169.47], EntityVillager['Villager'/12, l='MpServer', x=-786.31, y=5.00, z=-1169.69], EntityVillager['Villager'/13, l='MpServer', x=-786.09, y=5.00, z=-1168.34], EntityVillager['Villager'/14, l='MpServer', x=-793.31, y=4.00, z=-1178.69], EntityVillager['Villager'/15, l='MpServer', x=-786.69, y=4.00, z=-1175.44], EntityVillager['Villager'/17, l='MpServer', x=-795.58, y=2.92, z=-1162.31], EntityVillager['Villager'/16, l='MpServer', x=-789.00, y=4.00, z=-1174.13], EntityVillager['Villager'/19, l='MpServer', x=-794.72, y=4.45, z=-1162.50], EntityVillager['Villager'/18, l='MpServer', x=-794.76, y=4.34, z=-1163.69], EntityVillager['Villager'/21, l='MpServer', x=-800.31, y=4.00, z=-1168.25], EntityVillager['Villager'/20, l='MpServer', x=-795.69, y=3.48, z=-1163.37], EntityVillager['Villager'/23, l='MpServer', x=-785.16, y=5.00, z=-1166.75], EntityVillager['Villager'/22, l='MpServer', x=-787.20, y=5.00, z=-1168.83], EntityVillager['Villager'/25, l='MpServer', x=-787.75, y=4.00, z=-1171.50], EntityVillager['Villager'/24, l='MpServer', x=-787.44, y=4.00, z=-1163.31], EntityVillager['Villager'/27, l='MpServer', x=-787.69, y=5.00, z=-1168.09], EntityVillager['Villager'/26, l='MpServer', x=-787.69, y=5.00, z=-1167.17], EntityVillager['Villager'/29, l='MpServer', x=-791.91, y=5.00, z=-1143.44], EntityVillager['Villager'/28, l='MpServer', x=-789.97, y=5.00, z=-1144.91], EntityVillager['Villager'/31, l='MpServer', x=-792.13, y=5.00, z=-1146.38], EntityVillager['Villager'/30, l='MpServer', x=-792.53, y=5.00, z=-1140.31], EntityVillager['Villager'/32, l='MpServer', x=-797.56, y=4.00, z=-1143.84], EntityItem['item.tile.dirt'/38, l='MpServer', x=-786.25, y=3.13, z=-1089.84], EntityItem['item.tile.dirt'/39, l='MpServer', x=-785.59, y=3.13, z=-1092.88], EntityItem['item.tile.dirt'/36, l='MpServer', x=-787.56, y=3.13, z=-1091.63], EntityItem['item.tile.dirt'/37, l='MpServer', x=-784.69, y=3.13, z=-1091.56], EntityItem['item.tile.dirt'/42, l='MpServer', x=-784.25, y=3.13, z=-1092.44], EntityItem['item.tile.dirt'/43, l='MpServer', x=-785.72, y=3.13, z=-1088.09], EntityItem['item.tile.dirt'/40, l='MpServer', x=-785.16, y=2.13, z=-1090.78], EntityItem['item.tile.dirt'/41, l='MpServer', x=-784.75, y=3.13, z=-1088.75], EntityItem['item.tile.dirt'/46, l='MpServer', x=-786.88, y=1.13, z=-1080.13], EntityItem['item.tile.dirt'/47, l='MpServer', x=-789.63, y=3.13, z=-1079.81], EntityItem['item.tile.dirt'/44, l='MpServer', x=-787.31, y=2.13, z=-1080.03], EntityItem['item.tile.dirt'/45, l='MpServer', x=-786.97, y=3.13, z=-1077.13], EntityItem['item.tile.dirt'/51, l='MpServer', x=-787.03, y=2.13, z=-1082.19], EntityItem['item.tile.dirt'/50, l='MpServer', x=-787.88, y=2.13, z=-1082.59], EntityItem['item.tile.dirt'/49, l='MpServer', x=-789.28, y=3.13, z=-1081.09], EntityItem['item.tile.dirt'/48, l='MpServer', x=-788.75, y=2.13, z=-1079.38], EntityVillager['Villager'/54, l='MpServer', x=-783.31, y=4.00, z=-1152.56], EntityVillager['Villager'/53, l='MpServer', x=-781.78, y=4.00, z=-1150.59], EntityItem['item.tile.dirt'/52, l='MpServer', x=-785.75, y=2.13, z=-1079.25], EntityItem['item.tile.dirt'/68, l='MpServer', x=-775.72, y=2.13, z=-1110.13], EntityItem['item.tile.dirt'/69, l='MpServer', x=-776.09, y=3.13, z=-1112.88], EntityItem['item.tile.dirt'/70, l='MpServer', x=-776.44, y=3.13, z=-1109.25], EntityItem['item.tile.dirt'/71, l='MpServer', x=-774.31, y=3.13, z=-1112.28], EntityItem['item.tile.dirt'/67, l='MpServer', x=-777.47, y=3.13, z=-1110.28], EntityItem['item.tile.dirt'/76, l='MpServer', x=-783.97, y=3.13, z=-1090.59], EntityItem['item.tile.dirt'/77, l='MpServer', x=-783.72, y=3.13, z=-1091.47], EntitySheep['Sheep'/78, l='MpServer', x=-752.91, y=4.00, z=-1205.09], EntitySheep['Sheep'/79, l='MpServer', x=-750.88, y=4.00, z=-1192.91], EntityItem['item.tile.dirt'/72, l='MpServer', x=-774.66, y=3.13, z=-1110.06], EntityItem['item.tile.dirt'/73, l='MpServer', x=-783.44, y=3.13, z=-1092.25], EntityItem['item.tile.dirt'/74, l='MpServer', x=-783.19, y=3.13, z=-1088.88], EntityItem['item.tile.dirt'/75, l='MpServer', x=-782.38, y=3.13, z=-1089.03], EntitySheep['Sheep'/81, l='MpServer', x=-724.19, y=4.00, z=-1172.81], EntitySheep['Sheep'/80, l='MpServer', x=-723.88, y=4.00, z=-1208.06], EntityVillager['Villager'/93, l='MpServer', x=-808.28, y=5.00, z=-1168.31], EntityVillager['Villager'/95, l='MpServer', x=-812.87, y=5.00, z=-1167.25], EntityVillager['Villager'/94, l='MpServer', x=-807.31, y=5.00, z=-1169.69], EntityVillager['Villager'/102, l='MpServer', x=-807.31, y=5.00, z=-1168.72], EntityVillager['Villager'/103, l='MpServer', x=-809.34, y=5.00, z=-1167.78], EntityVillager['Villager'/100, l='MpServer', x=-813.69, y=6.00, z=-1168.16], EntityVillager['Villager'/101, l='MpServer', x=-812.91, y=6.50, z=-1168.56], EntityVillager['Villager'/98, l='MpServer', x=-812.69, y=6.00, z=-1169.69], EntityVillager['Villager'/99, l='MpServer', x=-811.13, y=5.00, z=-1169.69], EntityVillager['Villager'/96, l='MpServer', x=-813.69, y=6.00, z=-1169.09], EntityVillager['Villager'/97, l='MpServer', x=-810.31, y=5.00, z=-1169.69], EntityVillager['Villager'/110, l='MpServer', x=-813.09, y=5.00, z=-1158.38], EntityVillager['Villager'/111, l='MpServer', x=-812.33, y=5.00, z=-1158.12], EntityVillager['Villager'/108, l='MpServer', x=-813.31, y=9.00, z=-1158.31], EntityVillager['Villager'/109, l='MpServer', x=-811.31, y=12.00, z=-1158.69], EntityVillager['Villager'/106, l='MpServer', x=-812.00, y=5.00, z=-1166.31], EntityVillager['Villager'/107, l='MpServer', x=-810.75, y=5.00, z=-1168.09], EntityVillager['Villager'/104, l='MpServer', x=-812.00, y=5.50, z=-1168.88], EntityVillager['Villager'/105, l='MpServer', x=-808.13, y=5.00, z=-1169.66], EntityVillager['Villager'/119, l='MpServer', x=-812.90, y=5.00, z=-1166.30], EntityVillager['Villager'/118, l='MpServer', x=-810.25, y=5.00, z=-1166.31], EntityVillager['Villager'/117, l='MpServer', x=-814.66, y=3.00, z=-1167.50], EntityVillager['Villager'/116, l='MpServer', x=-803.09, y=4.00, z=-1167.50], EntityVillager['Villager'/115, l='MpServer', x=-811.31, y=5.00, z=-1159.47], EntityVillager['Villager'/114, l='MpServer', x=-813.69, y=5.00, z=-1159.56], EntityVillager['Villager'/113, l='MpServer', x=-813.70, y=5.00, z=-1166.30], EntityVillager['Villager'/112, l='MpServer', x=-812.03, y=5.00, z=-1157.43], EntityVillager['Villager'/127, l='MpServer', x=-806.53, y=4.00, z=-1148.63], EntityVillager['Villager'/126, l='MpServer', x=-810.69, y=4.00, z=-1153.69], EntityVillager['Villager'/125, l='MpServer', x=-814.31, y=2.00, z=-1151.22], EntityVillager['Villager'/124, l='MpServer', x=-815.31, y=4.00, z=-1157.56], EntityVillager['Villager'/123, l='MpServer', x=-813.56, y=2.00, z=-1152.69], EntityVillager['Villager'/122, l='MpServer', x=-813.84, y=4.00, z=-1167.50], EntityVillager['Villager'/121, l='MpServer', x=-811.16, y=5.00, z=-1166.31], EntityVillager['Villager'/120, l='MpServer', x=-810.00, y=4.00, z=-1163.25], EntityVillager['Villager'/137, l='MpServer', x=-812.10, y=5.00, z=-1159.00], EntityVillager['Villager'/136, l='MpServer', x=-805.69, y=3.00, z=-1160.34], EntityVillager['Villager'/139, l='MpServer', x=-813.41, y=4.00, z=-1162.59], EntityClientPlayerMP['Player825'/138, l='MpServer', x=-782.68, y=5.62, z=-1137.21], EntityVillager['Villager'/129, l='MpServer', x=-806.75, y=4.00, z=-1149.59], EntityVillager['Villager'/128, l='MpServer', x=-807.53, y=3.00, z=-1151.16], EntityVillager['Villager'/131, l='MpServer', x=-797.50, y=5.00, z=-1150.59], EntityVillager['Villager'/130, l='MpServer', x=-810.38, y=4.00, z=-1147.53], EntityVillager['Villager'/133, l='MpServer', x=-805.72, y=3.00, z=-1143.22], EntityVillager['Villager'/132, l='MpServer', x=-806.78, y=2.00, z=-1144.09], EntityVillager['Villager'/135, l='MpServer', x=-789.78, y=5.00, z=-1143.53], EntityVillager['Villager'/134, l='MpServer', x=-813.34, y=2.00, z=-1150.28], PhoenixEntityClass['entity.Phoenix.name'/2595, l='MpServer', x=-782.50, y=4.00, z=-1135.50]] 2014-02-08 11:51:38 [iNFO] [sTDOUT] Retry entities: 0 total; [] 2014-02-08 11:51:38 [iNFO] [sTDOUT] Server brand: fml,forge 2014-02-08 11:51:38 [iNFO] [sTDOUT] Server type: Integrated singleplayer server 2014-02-08 11:51:38 [iNFO] [sTDOUT] Stacktrace: 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:440) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2298) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:844) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.client.main.Main.main(Main.java:93) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at java.lang.reflect.Method.invoke(Unknown Source) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.launchwrapper.Launch.launch(Launch.java:57) 2014-02-08 11:51:38 [iNFO] [sTDOUT] at net.minecraft.launchwrapper.Launch.main(Launch.java:18) 2014-02-08 11:51:38 [iNFO] [sTDOUT] 2014-02-08 11:51:38 [iNFO] [sTDOUT] -- System Details -- 2014-02-08 11:51:38 [iNFO] [sTDOUT] Details: 2014-02-08 11:51:38 [iNFO] [sTDOUT] Minecraft Version: 1.6.2 2014-02-08 11:51:38 [iNFO] [sTDOUT] Operating System: Windows 7 (x86) version 6.1 2014-02-08 11:51:38 [iNFO] [sTDOUT] Java Version: 1.7.0_45, Oracle Corporation 2014-02-08 11:51:38 [iNFO] [sTDOUT] Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation 2014-02-08 11:51:38 [iNFO] [sTDOUT] Memory: 824191664 bytes (786 MB) / 1060372480 bytes (1011 MB) up to 1060372480 bytes (1011 MB) 2014-02-08 11:51:38 [iNFO] [sTDOUT] JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M 2014-02-08 11:51:38 [iNFO] [sTDOUT] AABB Pool Size: 21635 (1211560 bytes; 1 MB) allocated, 1510 (84560 bytes; 0 MB) used 2014-02-08 11:51:38 [iNFO] [sTDOUT] Suspicious classes: FML and Forge are installed 2014-02-08 11:51:38 [iNFO] [sTDOUT] IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 2014-02-08 11:51:38 [iNFO] [sTDOUT] FML: MCP v8.04 FML v6.2.35.804 Minecraft Forge 9.10.0.804 4 mods loaded, 4 mods active 2014-02-08 11:51:38 [iNFO] [sTDOUT] mcp{8.04} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available 2014-02-08 11:51:38 [iNFO] [sTDOUT] FML{6.2.35.804} [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available 2014-02-08 11:51:38 [iNFO] [sTDOUT] Forge{9.10.0.804} [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available 2014-02-08 11:51:38 [iNFO] [sTDOUT] BMC{1.0.0} [betterMC] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available 2014-02-08 11:51:38 [iNFO] [sTDOUT] Launched Version: 1.6 2014-02-08 11:51:38 [iNFO] [sTDOUT] LWJGL: 2.9.0 2014-02-08 11:51:38 [iNFO] [sTDOUT] OpenGL: Intel 945GM GL version 1.4.0 - Build 8.14.10.1930, Intel 2014-02-08 11:51:38 [iNFO] [sTDOUT] Is Modded: Definitely; Client brand changed to 'fml,forge' 2014-02-08 11:51:38 [iNFO] [sTDOUT] Type: Client (map_client.txt) 2014-02-08 11:51:38 [iNFO] [sTDOUT] Resource Pack: Default 2014-02-08 11:51:38 [iNFO] [sTDOUT] Current Language: English (US) 2014-02-08 11:51:38 [iNFO] [sTDOUT] Profiler Position: N/A (disabled) 2014-02-08 11:51:38 [iNFO] [sTDOUT] Vec3 Pool Size: 1724 (96544 bytes; 0 MB) allocated, 283 (15848 bytes; 0 MB) used 2014-02-08 11:51:38 [iNFO] [sTDOUT] #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\Dom\Desktop\FMods - Copy\forge\mcp\jars\.\crash-reports\crash-2014-02-08_11.51.38-client.txt AL lib: (EE) alc_cleanup: 1 device not closed Main Class: package bettermc.test; import net.minecraft.block.Block; import net.minecraft.block.BlockBreakable; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EnumCreatureType; import net.minecraft.item.EnumToolMaterial; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.src.ModLoader; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.Configuration; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid="BMC", name="BetterMC", version="1.0.0") @NetworkMod(clientSideRequired=true, serverSideRequired=false) public class Main { public static CreativeTabs tabBlasters = new CreativeTabs("tabBlasters") { public ItemStack getIconItemStack() { return new ItemStack(blasterRifle, 1, 0); } }; public EnumToolMaterial mat; // The instance of your mod that Forge uses. @Instance("Test") public static Main instance; //public final static Item MagicEx1 = new MagicExtracter(5004).func_111206_d("bettermc:MagicDrag").setCreativeTab(tabBlasters).setUnlocalizedName("MagicE1");;; public final static Item Oore = new GraxOre(3092).func_111206_d("bettermc:GraxOre").setCreativeTab(tabBlasters).setUnlocalizedName("GraxOre");;; public final static Block Magic = new MagicBlock(3095, Material.portal).setHardness(0.5F) .setStepSound(Block.soundGravelFootstep) .setUnlocalizedName("Magic") .setCreativeTab(CreativeTabs.tabBlock) .func_111022_d("bettermc:Furnace"); public final static Item PhoenixBlade = new BlazeBlade(3094).func_111206_d("bettermc:BlazeBlade").setCreativeTab(tabBlasters).setUnlocalizedName("PhoenixBlade");;; public final static Item blasterRifle = new Blaster(3093).setCreativeTab(tabBlasters).setUnlocalizedName("Blaster").func_111206_d("bettermc:Blaster"); // Says where the client and server 'proxy' code is loaded. @SidedProxy(clientSide="bettermc.test.client.ClientProxy", serverSide="bettermc.test.CommonProxy") public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { proxy.registerRenderers(); //MinecraftForge.setToolClass(MagicEx1, "MagicTool", 5); Configuration config = new Configuration(event.getSuggestedConfigurationFile()); config.load(); //example int randomBlockID = config.getItem("GraxOre", 20001).getInt(); int randomItemID = config.getItem("Phoenix Blaster", 20000).getInt(); int PhoenixBladeID = config.getItem("PhoenixBlade", 20002).getInt(); config.save(); } @EventHandler public void Init(FMLInitializationEvent event) { int redColor = (255 << 16); int orangeColor = (255 << 16)+ (200 << ; //Register mob EntityRegistry.registerGlobalEntityID(bettermc.test.phoenixmob.PhoenixEntityClass.class,"Phoenix",EntityRegistry.findGlobalUniqueEntityId(), redColor,orangeColor); //Localize mob name LanguageRegistry.instance().addStringLocalization("entity.RedDragon.name", "en_US", "Red Dragon"); //Add mob spawn EntityRegistry.addSpawn(bettermc.test.phoenixmob.PhoenixEntityClass.class, 2, 1, 2, EnumCreatureType.monster, BiomeGenBase.plains); EntityRegistry.addSpawn(bettermc.test.phoenixmob.PhoenixEntityClass.class, 5, 1, 2, EnumCreatureType.monster, BiomeGenBase.extremeHills); //Localize mob name LanguageRegistry.addName(Oore, "Nether Essence"); //LanguageRegistry.addName(MagicEx1, "Magic Extracter"); LanguageRegistry.addName(Magic, "Magic Block"); LanguageRegistry.addName(PhoenixBlade, "Phoenix Blade"); GameRegistry.registerItem(Oore, "Nether Essence"); //GameRegistry.registerItem(MagicEx1, "Magic Extracter"); GameRegistry.registerItem(PhoenixBlade, "Phoenix Blade"); GameRegistry.registerItem(blasterRifle, "Phoenix Blaster"); GameRegistry.registerBlock(Magic, "Magic"); LanguageRegistry.addName(blasterRifle, "Phoenix Blaster"); RenderingRegistry.registerEntityRenderingHandler(EntityBlasterBolt.class, new RenderSnowball(Oore)); LanguageRegistry.instance().addStringLocalization("itemGroup.tabBlasters", "en_US", "Blaze Phoenix Mod"); ItemStack dirtStack = new ItemStack(Item.ingotIron); ItemStack cobblestack = new ItemStack(blasterRifle); ItemStack gravelStack = new ItemStack(Oore); GameRegistry.addRecipe(cobblestack, "x ", " x ", " yx", 'x', dirtStack, 'y', gravelStack); ItemStack quartzstack = new ItemStack(Item.netherQuartz); ItemStack blazestack = new ItemStack(Item.blazePowder); GameRegistry.addShapelessRecipe(gravelStack, quartzstack, blazestack); } @EventHandler public void postInit(FMLPostInitializationEvent event) { // Stub Method } } Client Proxy: package bettermc.test.client; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.registry.EntityRegistry; import net.minecraft.client.renderer.entity.Render; import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.MinecraftForgeClient; import bettermc.test.CommonProxy; import bettermc.test.ItemRender; public class ClientProxy extends CommonProxy { @Override public void registerRenderers() { MinecraftForgeClient.registerItemRenderer(bettermc.test.Main.blasterRifle.itemID, (IItemRenderer)new ItemRender()); RenderingRegistry.registerEntityRenderingHandler(bettermc.test.phoenixmob.PhoenixEntityClass.class, new bettermc.test.phoenixmob.PhoenixRender(new bettermc.test.phoenixmob.PhoenixMob(), 0.5F)); } } Entity Class: package bettermc.test.phoenixmob; import net.minecraft.entity.EntityAgeable; import net.minecraft.entity.ai.EntityAIFollowParent; import net.minecraft.entity.ai.EntityAILookIdle; import net.minecraft.entity.ai.EntityAIMate; import net.minecraft.entity.ai.EntityAIPanic; import net.minecraft.entity.ai.EntityAISwimming; import net.minecraft.entity.ai.EntityAITempt; import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.world.World; //Your declaration. If your mob swims, change EntityAnimal to EntityWaterMob. public class PhoenixEntityClass extends EntityAnimal { public PhoenixEntityClass(World par1World) { super(par1World); //The below means if possible, it wont walk into water this.getNavigator().setAvoidsWater(true); //This is the hitbox size. I believe it starts in the center and grows outwards this.setSize(1.5F, 0.9F); //Pretty self-explanatory. this.isImmuneToFire = true; float var2 = 0.25F; //Now, we have the AI. Each number in the addTask is a priority. 0 is the highest, the largest is lowest. //They should be set in the order which the mob should focus, because it can only do one thing at a time. I'll explain my choice for order below. //There are tonnes of tasks you can add. Look in the JavaDocs or other mob classes to find some more! //Swimming should ALWAYS be first. Otherwise if your mob falls in water, but it's running away from you or something it'll drown. //This makes the mob run away when you punch it this.tasks.addTask(0, new EntityAIPanic(this, 0.38F)); //If you have mating code, this allows it to mate. this.tasks.addTask(1, new EntityAIMate(this, var2)); //This code is used to get the mob to follow you (like cows with wheat). Here it's set to a custom fruit this.tasks.addTask(2, new EntityAITempt(this, 0.3F, bettermc.test.Main.Oore.itemID, false)); //If the mob is a child, it will follow it's parent. this.tasks.addTask(3, new EntityAIFollowParent(this, 0.28F)); //This makes the mob walk around. Without it, it'd just stand still. this.tasks.addTask(4, new EntityAIWander(this, var2)); //This makes the mob watch the nearest player, within a range set by the float. this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); //Finally, this makes it look around when it's not looking at a player or wandering. this.tasks.addTask(6, new EntityAILookIdle(this)); } //This is required. If it's false, none of the above takes effect. public boolean isAIEnabled() { return true; } //Pretty obvious, set it's health! public int getMaxHealth() { return 10; } //A basic example of what a mob should drop on death. For more advanced examples, look at code for chicken or squid. protected int getDropItemId() { return Item.blazePowder.itemID; } //This is required regardless of if your animal can breed or not. Set to null if it can't breed - I wont cover breeding here. public EntityAgeable createChild(EntityAgeable var1) { return null; } } Render Class: (This is where all the errors are) package bettermc.test.phoenixmob; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.ModelBase; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.passive.EntityCow; import net.minecraft.util.ResourceLocation; @SideOnly(Side.CLIENT) public class PhoenixRender extends RenderLiving { public PhoenixRender(ModelBase par1ModelBase, float par2) { super(null, par2); } public void renderPhoenix(PhoenixEntityClass par1EntityPhoenix, double par2, double par4, double par6, float par8, float par9) { super.doRenderLiving(par1EntityPhoenix, par2, par4, par6, par8, par9); } public void doRenderLiving(EntityLiving par1EntityLiving, double par2, double par4, double par6, float par8, float par9) { this.renderPhoenix((PhoenixEntityClass)par1EntityLiving, par2, par4, par6, par8, par9); } /** * 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.renderPhoenix((PhoenixEntityClass)par1Entity, par2, par4, par6, par8, par9); } @Override protected ResourceLocation func_110775_a(Entity entity) { ResourceLocation loc = new ResourceLocation("bettermc", "textures/mob/PhoenixMobTex.png"); return loc; } } Model Class: [bonus Points: Can you tell me how to animate walking and looking?] // Date: 2/8/2014 11:12:03 AM // Template version 1.1 // Java generated by Techne // Keep in mind that you still need to fill in some blanks // - ZeuX package bettermc.test.phoenixmob; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; public class PhoenixMob extends ModelBase { //fields ModelRenderer Body; ModelRenderer LWingBase; ModelRenderer LFeather1; ModelRenderer LFeather2; ModelRenderer LFeather3; ModelRenderer RWingBase; ModelRenderer RFeather1; ModelRenderer RFeather2; ModelRenderer RFeather3; ModelRenderer LLegBase; ModelRenderer LLegClaw1; ModelRenderer LLegClaw2; ModelRenderer LLegClaw3; ModelRenderer RLegBase; ModelRenderer RLegClaw1; ModelRenderer RLegClaw2; ModelRenderer RLegClaw3; ModelRenderer TailFeather1; ModelRenderer TailFeather2; ModelRenderer TailFeather3; ModelRenderer Head; ModelRenderer HFeather1; ModelRenderer HFeather2; ModelRenderer Neck; ModelRenderer Beak; public PhoenixMob() { textureWidth = 64; textureHeight = 32; Body = new ModelRenderer(this, 0, 0); Body.addBox(-3F, 0F, -4F, 6, 3, 10); Body.setRotationPoint(0F, 15F, -1F); Body.setTextureSize(64, 32); Body.mirror = true; setRotation(Body, -0.4833219F, 0F, 0F); LWingBase = new ModelRenderer(this, 0, 13); LWingBase.addBox(0F, 0F, 0F, 1, 3, 3); LWingBase.setRotationPoint(2F, 15F, -3F); LWingBase.setTextureSize(64, 32); LWingBase.mirror = true; setRotation(LWingBase, 0F, 0.2602503F, -0.260246F); LFeather1 = new ModelRenderer(this, 0, 19); LFeather1.addBox(0F, 0F, 3F, 1, 1, 4); LFeather1.setRotationPoint(2F, 15F, -3F); LFeather1.setTextureSize(64, 32); LFeather1.mirror = true; setRotation(LFeather1, -0.122173F, 0.260246F, -0.260246F); LFeather2 = new ModelRenderer(this, 10, 19); LFeather2.addBox(0F, 0F, 3F, 1, 1, 4); LFeather2.setRotationPoint(2F, 16F, -3F); LFeather2.setTextureSize(64, 32); LFeather2.mirror = true; setRotation(LFeather2, -0.122173F, 0.260246F, -0.260246F); LFeather3 = new ModelRenderer(this, 20, 19); LFeather3.mirror = true; LFeather3.addBox(0F, -0.5F, 2.666667F, 1, 1, 4); LFeather3.setRotationPoint(2F, 17F, -3F); LFeather3.setTextureSize(64, 32); LFeather3.mirror = true; setRotation(LFeather3, -0.1965303F, 0.260246F, -0.260246F); LFeather3.mirror = false; RWingBase = new ModelRenderer(this, 0, 13); RWingBase.mirror = true; RWingBase.addBox(0F, 0F, 0F, 1, 3, 3); RWingBase.setRotationPoint(-3F, 14F, -3F); RWingBase.setTextureSize(64, 32); RWingBase.mirror = true; setRotation(RWingBase, 0F, -0.260246F, 0.260246F); RWingBase.mirror = false; RFeather1 = new ModelRenderer(this, 20, 19); RFeather1.addBox(0F, 0F, 2F, 1, 1, 4); RFeather1.setRotationPoint(-3F, 14F, -3F); RFeather1.setTextureSize(64, 32); RFeather1.mirror = true; setRotation(RFeather1, 0.010631F, -0.260246F, 0.260246F); RFeather2 = new ModelRenderer(this, 10, 19); RFeather2.addBox(0.2F, 1F, 2F, 1, 1, 4); RFeather2.setRotationPoint(-3F, 14F, -3F); RFeather2.setTextureSize(64, 32); RFeather2.mirror = true; setRotation(RFeather2, 0.0106291F, -0.260246F, 0.260246F); RFeather3 = new ModelRenderer(this, 0, 19); RFeather3.addBox(-0.3F, 2F, 2F, 1, 1, 4); RFeather3.setRotationPoint(-2F, 14F, -3F); RFeather3.setTextureSize(64, 32); RFeather3.mirror = true; setRotation(RFeather3, 0.0106291F, -0.260246F, 0.260246F); LLegBase = new ModelRenderer(this, 8, 13); LLegBase.addBox(0F, 0F, 0F, 1, 5, 1); LLegBase.setRotationPoint(1F, 19F, 0F); LLegBase.setTextureSize(64, 32); LLegBase.mirror = true; setRotation(LLegBase, 0F, 0F, 0F); LLegClaw1 = new ModelRenderer(this, 12, 16); LLegClaw1.addBox(0F, 4F, -3F, 1, 1, 2); LLegClaw1.setRotationPoint(1F, 19F, 0F); LLegClaw1.setTextureSize(64, 32); LLegClaw1.mirror = true; setRotation(LLegClaw1, 0F, -0.8551081F, 0F); LLegClaw2 = new ModelRenderer(this, 12, 16); LLegClaw2.addBox(0F, 4F, -2F, 1, 1, 2); LLegClaw2.setRotationPoint(1F, 19F, 0F); LLegClaw2.setTextureSize(64, 32); LLegClaw2.mirror = true; setRotation(LLegClaw2, 0F, 0F, 0F); LLegClaw3 = new ModelRenderer(this, 12, 16); LLegClaw3.addBox(0F, 4F, -2F, 1, 1, 2); LLegClaw3.setRotationPoint(1F, 19F, 0F); LLegClaw3.setTextureSize(64, 32); LLegClaw3.mirror = true; setRotation(LLegClaw3, 0F, 0.8518239F, 0F); RLegBase = new ModelRenderer(this, 8, 13); RLegBase.addBox(0F, 0F, 0F, 1, 5, 1); RLegBase.setRotationPoint(-2F, 19F, 0F); RLegBase.setTextureSize(64, 32); RLegBase.mirror = true; setRotation(RLegBase, 0F, 0F, 0F); RLegClaw1 = new ModelRenderer(this, 12, 16); RLegClaw1.addBox(0F, 4F, -2F, 1, 1, 2); RLegClaw1.setRotationPoint(-2F, 19F, 0F); RLegClaw1.setTextureSize(64, 32); RLegClaw1.mirror = true; setRotation(RLegClaw1, 0F, -0.8551081F, 0F); RLegClaw2 = new ModelRenderer(this, 12, 16); RLegClaw2.addBox(0F, 4F, -2F, 1, 1, 2); RLegClaw2.setRotationPoint(-2F, 19F, 0F); RLegClaw2.setTextureSize(64, 32); RLegClaw2.mirror = true; setRotation(RLegClaw2, 0F, 0F, 0F); RLegClaw3 = new ModelRenderer(this, 12, 16); RLegClaw3.addBox(0F, 4F, -2F, 1, 1, 2); RLegClaw3.setRotationPoint(-2F, 19F, 0F); RLegClaw3.setTextureSize(64, 32); RLegClaw3.mirror = true; setRotation(RLegClaw3, 0F, 0.8518239F, 0F); TailFeather1 = new ModelRenderer(this, 0, 24); TailFeather1.addBox(0F, 0F, 0F, 1, 1, 7); TailFeather1.setRotationPoint(0F, 18F, 4F); TailFeather1.setTextureSize(64, 32); TailFeather1.mirror = true; setRotation(TailFeather1, 0F, 0F, 0F); TailFeather2 = new ModelRenderer(this, 0, 24); TailFeather2.addBox(0F, 0F, 0F, 1, 1, 7); TailFeather2.setRotationPoint(0F, 18F, 4F); TailFeather2.setTextureSize(64, 32); TailFeather2.mirror = true; setRotation(TailFeather2, 0F, 0.4461433F, 0F); TailFeather3 = new ModelRenderer(this, 0, 24); TailFeather3.addBox(0F, 0F, 0F, 1, 1, 7); TailFeather3.setRotationPoint(0F, 18F, 4F); TailFeather3.setTextureSize(64, 32); TailFeather3.mirror = true; setRotation(TailFeather3, 0F, -0.5948578F, 0F); Head = new ModelRenderer(this, 40, 0); Head.addBox(-2F, -8F, -7F, 4, 3, 5); Head.setRotationPoint(0F, 15F, -4F); Head.setTextureSize(64, 32); Head.mirror = true; setRotation(Head, 0F, 0F, 0F); HFeather1 = new ModelRenderer(this, 10, 19); HFeather1.addBox(-0.5F, -8F, -2F, 1, 1, 4); HFeather1.setRotationPoint(0F, 15F, -4F); HFeather1.setTextureSize(64, 32); HFeather1.mirror = true; setRotation(HFeather1, 0F, 0F, 0F); HFeather2 = new ModelRenderer(this, 0, 19); HFeather2.addBox(-0.5F, -9F, 2F, 1, 1, 4); HFeather2.setRotationPoint(0F, 15F, -4F); HFeather2.setTextureSize(64, 32); HFeather2.mirror = true; setRotation(HFeather2, 0.6320364F, 0F, 0F); Neck = new ModelRenderer(this, 32, 0); Neck.addBox(-1F, -7F, -1F, 2, 6, 2); Neck.setRotationPoint(0F, 15F, -4F); Neck.setTextureSize(64, 32); Neck.mirror = true; setRotation(Neck, 0.4089647F, 0F, 0F); Beak = new ModelRenderer(this, 30, 18); Beak.addBox(-1F, -7F, -11F, 2, 2, 4); Beak.setRotationPoint(0F, 15F, -4F); Beak.setTextureSize(64, 32); Beak.mirror = true; setRotation(Beak, 0F, 0F, 0F); } public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { super.render(entity, f, f1, f2, f3, f4, f5); setRotationAngles(f, f1, f2, f3, f4, f5, entity); Body.render(f5); LWingBase.render(f5); LFeather1.render(f5); LFeather2.render(f5); LFeather3.render(f5); RWingBase.render(f5); RFeather1.render(f5); RFeather2.render(f5); RFeather3.render(f5); LLegBase.render(f5); LLegClaw1.render(f5); LLegClaw2.render(f5); LLegClaw3.render(f5); RLegBase.render(f5); RLegClaw1.render(f5); RLegClaw2.render(f5); RLegClaw3.render(f5); TailFeather1.render(f5); TailFeather2.render(f5); TailFeather3.render(f5); Head.render(f5); HFeather1.render(f5); HFeather2.render(f5); Neck.render(f5); Beak.render(f5); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity ent) { super.setRotationAngles(f, f1, f2, f3, f4, f5, ent); } }
  15. Ok I may sound and probably am stupid with Java (I'm new, intermediate, not fluent, I learn from tutorials, I get what they say, but I have things to learn), But How would I assign this a value? I mean I get that is referencing the class, but how do I make it NOT null, If you won't answer, then others will. Cause I don't know what values to put to make it not null, if I don't get it, ill look up on iChuns tut again.
  16. So I saw Mods like the John Mod where there are mobs of varying sizes, or even of the horses now and slimes. So I was wondering, How do you reduce or increase the size of a mob's model and maybe even hitbox. I need this for my mod. So is there a method in the model? or is it 3 seperate models?
  17. Look, I did, but I couldn't find the error or any tutorial. It lead to the render class and it had everything right from the tutorial. That's the whole reason I sent the code here
  18. I was making a custom 3D model for an item, yet once I go in 3rd person, I get a certain Stack Trace, I am wondering what is causing it. BTW, I'm using Techne to make the 3D model and I got the tutorial from iChun. Main Class: package bettermc.test; import net.minecraft.block.Block; import net.minecraft.block.BlockBreakable; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.EnumToolMaterial; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.src.ModLoader; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.Configuration; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid="BMC", name="BetterMC", version="1.0.0") @NetworkMod(clientSideRequired=true, serverSideRequired=false) public class Test { public static CreativeTabs tabBlasters = new CreativeTabs("tabBlasters") { public ItemStack getIconItemStack() { return new ItemStack(blasterRifle, 1, 0); } }; public EnumToolMaterial mat; // The instance of your mod that Forge uses. @Instance("Test") public static Test instance; //public final static Item MagicEx1 = new MagicExtracter(5004).func_111206_d("bettermc:MagicDrag").setCreativeTab(tabBlasters).setUnlocalizedName("MagicE1");;; public final static Item Oore = new GraxOre(5000).func_111206_d("bettermc:GraxOre").setCreativeTab(tabBlasters).setUnlocalizedName("GraxOre");;; //public final static Block Magic = new MagicBlock(5003, Material.portal).func_111022_d("bettermc:Magic"); public final static Item PhoenixBlade = new BlazeBlade(5002).func_111206_d("bettermc:BlazeBlade").setCreativeTab(tabBlasters).setUnlocalizedName("PhoenixBlade");;; public final static Item blasterRifle = new Blaster(5001).setCreativeTab(tabBlasters).setUnlocalizedName("Blaster").func_111206_d("bettermc:Blaster"); // Says where the client and server 'proxy' code is loaded. @SidedProxy(clientSide="bettermc.test.client.ClientProxy", serverSide="bettermc.test.CommonProxy") public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { //MinecraftForge.setToolClass(MagicEx1, "MagicTool", 5); Configuration config = new Configuration(event.getSuggestedConfigurationFile()); config.load(); //example int randomBlockID = config.getItem("GraxOre", 20001).getInt(); int randomItemID = config.getItem("Phoenix Blaster", 20000).getInt(); int PhoenixBladeID = config.getItem("PhoenixBlade", 20002).getInt(); config.save(); } @EventHandler public void Init(FMLInitializationEvent event) { //Register mob //Localize mob name LanguageRegistry.addName(Oore, "Nether Essence"); //LanguageRegistry.addName(MagicEx1, "Magic Extracter"); //LanguageRegistry.addName(Magic, "Magic Block"); LanguageRegistry.addName(PhoenixBlade, "Phoenix Blade"); GameRegistry.registerItem(Oore, "Nether Essence"); //GameRegistry.registerItem(MagicEx1, "Magic Extracter"); GameRegistry.registerItem(PhoenixBlade, "Phoenix Blade"); GameRegistry.registerItem(blasterRifle, "Phoenix Blaster"); //GameRegistry.registerBlock(Magic, "Magic"); proxy.registerRenderers(); LanguageRegistry.addName(blasterRifle, "Phoenix Blaster"); RenderingRegistry.registerEntityRenderingHandler(EntityBlasterBolt.class, new RenderSnowball(Oore)); LanguageRegistry.instance().addStringLocalization("itemGroup.tabBlasters", "en_US", "Blaze Phoenix Mod"); ItemStack dirtStack = new ItemStack(Item.ingotIron); ItemStack cobblestack = new ItemStack(blasterRifle); ItemStack gravelStack = new ItemStack(Oore); GameRegistry.addRecipe(cobblestack, "x ", " x ", " yx", 'x', dirtStack, 'y', gravelStack); ItemStack quartzstack = new ItemStack(Item.netherQuartz); ItemStack blazestack = new ItemStack(Item.blazePowder); GameRegistry.addShapelessRecipe(gravelStack, quartzstack, blazestack); } @EventHandler public void postInit(FMLPostInitializationEvent event) { // Stub Method } } Renderer: package bettermc.test; import bettermc.test.Blaster; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; public class ItemRender implements IItemRenderer { protected ModelPhoenixBlastereModel phoenix; ResourceLocation texture = new ResourceLocation("bettermc", "textures/items/PhoenixModel.png)"); private static RenderItem renderItem = new RenderItem(); @Override public boolean handleRenderType(ItemStack itemStack, ItemRenderType type) { switch(type){ case EQUIPPED: return true; default: return false; } } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return false; } @Override public void renderItem(ItemRenderType type, ItemStack itemStack, Object... data) { switch(type){ case EQUIPPED:{ GL11.glPushMatrix(); Minecraft.getMinecraft().renderEngine.func_110581_b(texture); phoenix.render((Entity)data[1], 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0625f); GL11.glPopMatrix(); } default: break; } } } Model Class: package bettermc.test; import bettermc.test.Blaster; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; public class ItemRender implements IItemRenderer { protected ModelPhoenixBlastereModel phoenix; ResourceLocation texture = new ResourceLocation("bettermc", "textures/items/PhoenixModel.png)"); private static RenderItem renderItem = new RenderItem(); @Override public boolean handleRenderType(ItemStack itemStack, ItemRenderType type) { switch(type){ case EQUIPPED: return true; default: return false; } } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return false; } @Override public void renderItem(ItemRenderType type, ItemStack itemStack, Object... data) { switch(type){ case EQUIPPED:{ GL11.glPushMatrix(); Minecraft.getMinecraft().renderEngine.func_110581_b(texture); phoenix.render((Entity)data[1], 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0625f); GL11.glPopMatrix(); } default: break; } } } [/Code] Item(Its a spade cause I was trying to make it not look like an item in hand and more like a sword): [code] package bettermc.test; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.monster.EntityBlaze; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntitySnowball; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.item.EnumToolMaterial; import net.minecraft.item.Item; import net.minecraft.item.ItemSpade; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; public class Blaster extends ItemSpade { public Blaster(int id) { super(id, EnumToolMaterial.PHOENIX); } @Override public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World,EntityPlayer par3EntityPlayer) { if(par3EntityPlayer.capabilities.isCreativeMode||par3EntityPlayer.inventory.consumeInventoryItem(Item.redstone.itemID)) { par2World.playSoundAtEntity(par3EntityPlayer, "random.fuse", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); par2World.spawnEntityInWorld(new EntityBlasterBolt(par2World, par3EntityPlayer)); } return par1ItemStack; } } Stack Trace: 2014-01-02 21:53:12 [sEVERE] [Minecraft-Client] ########## GL ERROR ########## 2014-01-02 21:53:12 [sEVERE] [Minecraft-Client] @ Post render 2014-01-02 21:53:12 [sEVERE] [Minecraft-Client] 1283: Stack overflow 2014-01-02 21:53:12 [iNFO] [sTDERR] java.lang.NullPointerException 2014-01-02 21:53:12 [iNFO] [sTDERR] at bettermc.test.ItemRender.renderItem(ItemRender.java:45) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraftforge.client.ForgeHooksClient.renderEquippedItem(ForgeHooksClient.java:207) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.ItemRenderer.renderItem(ItemRenderer.java:89) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.ItemRenderer.renderItem(ItemRenderer.java:68) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.entity.RenderPlayer.renderSpecials(RenderPlayer.java:408) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.entity.RenderPlayer.renderEquippedItems(RenderPlayer.java:519) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.entity.RendererLivingEntity.func_130000_a(RendererLivingEntity.java:218) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.entity.RenderPlayer.func_130009_a(RenderPlayer.java:166) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.entity.RenderPlayer.doRender(RenderPlayer.java:553) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.entity.RenderManager.renderEntityWithPosYaw(RenderManager.java:312) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.entity.RenderManager.renderEntity(RenderManager.java:281) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:524) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1160) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1006) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:934) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:826) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.main.Main.main(Main.java:93) 2014-01-02 21:53:12 [iNFO] [sTDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2014-01-02 21:53:12 [iNFO] [sTDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:53:12 [iNFO] [sTDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:53:12 [iNFO] [sTDERR] at java.lang.reflect.Method.invoke(Unknown Source) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.launchwrapper.Launch.launch(Launch.java:57) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.launchwrapper.Launch.main(Launch.java:18)
  19. So Im trying to make a furnace by copying the Tile Entity Code and I don't know how to set the texture and also, it doesn't show any sign of the GUI showing up when I right click My block. How do I add the GUI and the slots. in areas Main: package gummyBah.MainClass; import net.minecraft.block.Block; import net.minecraft.block.BlockBreakable; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.src.ModLoader; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.Configuration; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid="GummyBah", name="GummyBear", version="1.0.0") @NetworkMod(clientSideRequired=true, serverSideRequired=false) public class Main { public static CreativeTabs tabBlasters = new CreativeTabs("tabBlasters") { public ItemStack getIconItemStack() { return new ItemStack(RGummyBear, 1, 0); } }; // The instance of your mod that Forge uses. public final static Item RGummyBear = new RGummyBear(4095, 1, 1, false).setPotionEffect(Potion.fireResistance.id, 300, 1, 100.0F).func_111206_d("bettermc:GummyBearRed");; public final static Item GGBear = new GGummyBear(4094, 1, 1, false).setPotionEffect(Potion.jump.id, 300, 5, 100.0F).func_111206_d("bettermc:GummyBearGreen");; public final static Item BGBear = new BGummyBear(4093, 1, 1, false).setPotionEffect(Potion.waterBreathing.id, 300, 5, 100.0F).func_111206_d("bettermc:GummyBearBlue");; public final static Block CarmelOven = new Carmalizer(4092, Material.ground); @Instance("Test") public static Main instance; // Says where the client and server 'proxy' code is loaded. @SidedProxy(clientSide="gummyBah.MainClass.client.ClientProxy", serverSide="gummyBah.MainClass.CommonProxy") public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { Configuration config = new Configuration(event.getSuggestedConfigurationFile()); config.load(); config.save(); } @EventHandler public void Init(FMLInitializationEvent event) { LanguageRegistry.instance().addStringLocalization("carmel", "en_US", "Carmalizer"); GameRegistry.registerBlock(CarmelOven, "Carmalizer"); LanguageRegistry.addName(CarmelOven, "Carmalizer"); LanguageRegistry.addName(RGummyBear, "Red Gummy Bear"); GameRegistry.registerTileEntity(gummyBah.MainClass.CarmalizerTileEntity.class, "carmal"); LanguageRegistry.addName(GGBear, "Green Gummy Bear"); LanguageRegistry.addName(BGBear, "Blue Gummy Bear"); GameRegistry.registerItem(RGummyBear, "Red Gummy Bear"); GameRegistry.registerItem(GGBear, "Green Gummy Bear"); GameRegistry.registerItem(BGBear, "Blue Gummy Bear"); LanguageRegistry.instance().addStringLocalization("tabBlasters", "en_US", "Gummy Mod"); proxy.registerRenderers(); } @EventHandler public void postInit(FMLPostInitializationEvent event) { // Stub Method } } Block: package gummyBah.MainClass; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class Carmalizer extends Block { public Carmalizer(int id, Material material){ super(id, material); this.setHardness(0.5F); this.setStepSound(Block.soundGravelFootstep); this.setUnlocalizedName("carmel"); this.setCreativeTab(gummyBah.MainClass.Main.tabBlasters); this.func_111022_d("bettermc:CandyFurnace"); } public TileEntity createTileEntity(World world, int metadata) { return new CarmalizerTileEntity(); } } Tile Entity: package gummyBah.MainClass; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockFurnace; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemHoe; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.item.ItemTool; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDummyContainer; public class CarmalizerTileEntity extends TileEntity implements ISidedInventory { private static final int[] slots_top = new int[] {0}; private static final int[] slots_bottom = new int[] {2, 1}; private static final int[] slots_sides = new int[] {1}; /** * The ItemStacks that hold the items currently being used in the furnace */ private ItemStack[] furnaceItemStacks = new ItemStack[3]; /** The number of ticks that the furnace will keep burning */ public int furnaceBurnTime; /** * The number of ticks that a fresh copy of the currently-burning item would keep the furnace burning for */ public int currentItemBurnTime; /** The number of ticks that the current item has been cooking for */ public int furnaceCookTime; private String field_94130_e; /** * Returns the number of slots in the inventory. */ public int getSizeInventory() { return this.furnaceItemStacks.length; } /** * Returns the stack in slot i */ public ItemStack getStackInSlot(int par1) { return this.furnaceItemStacks[par1]; } /** * Removes from an inventory slot (first arg) up to a specified number (second arg) of items and returns them in a * new stack. */ public ItemStack decrStackSize(int par1, int par2) { if (this.furnaceItemStacks[par1] != null) { ItemStack itemstack; if (this.furnaceItemStacks[par1].stackSize <= par2) { itemstack = this.furnaceItemStacks[par1]; this.furnaceItemStacks[par1] = null; return itemstack; } else { itemstack = this.furnaceItemStacks[par1].splitStack(par2); if (this.furnaceItemStacks[par1].stackSize == 0) { this.furnaceItemStacks[par1] = null; } return itemstack; } } else { return null; } } /** * When some containers are closed they call this on each slot, then drop whatever it returns as an EntityItem - * like when you close a workbench GUI. */ public ItemStack getStackInSlotOnClosing(int par1) { if (this.furnaceItemStacks[par1] != null) { ItemStack itemstack = this.furnaceItemStacks[par1]; this.furnaceItemStacks[par1] = null; return itemstack; } else { return null; } } /** * Sets the given item stack to the specified slot in the inventory (can be crafting or armor sections). */ public void setInventorySlotContents(int par1, ItemStack par2ItemStack) { this.furnaceItemStacks[par1] = par2ItemStack; if (par2ItemStack != null && par2ItemStack.stackSize > this.getInventoryStackLimit()) { par2ItemStack.stackSize = this.getInventoryStackLimit(); } } /** * Returns the name of the inventory. */ public String getInvName() { return this.isInvNameLocalized() ? this.field_94130_e : "container.furnace"; } /** * If this returns false, the inventory name will be used as an unlocalized name, and translated into the player's * language. Otherwise it will be used directly. */ public boolean isInvNameLocalized() { return this.field_94130_e != null && this.field_94130_e.length() > 0; } /** * Sets the custom display name to use when opening a GUI linked to this tile entity. */ public void setGuiDisplayName(String par1Str) { this.field_94130_e = par1Str; } /** * Reads a tile entity from NBT. */ public void readFromNBT(NBTTagCompound par1NBTTagCompound) { super.readFromNBT(par1NBTTagCompound); NBTTagList nbttaglist = par1NBTTagCompound.getTagList("Items"); this.furnaceItemStacks = new ItemStack[this.getSizeInventory()]; for (int i = 0; i < nbttaglist.tagCount(); ++i) { NBTTagCompound nbttagcompound1 = (NBTTagCompound)nbttaglist.tagAt(i); byte b0 = nbttagcompound1.getByte("Slot"); if (b0 >= 0 && b0 < this.furnaceItemStacks.length) { this.furnaceItemStacks[b0] = ItemStack.loadItemStackFromNBT(nbttagcompound1); } } this.furnaceBurnTime = par1NBTTagCompound.getShort("BurnTime"); this.furnaceCookTime = par1NBTTagCompound.getShort("CookTime"); this.currentItemBurnTime = getItemBurnTime(this.furnaceItemStacks[1]); if (par1NBTTagCompound.hasKey("CustomName")) { this.field_94130_e = par1NBTTagCompound.getString("CustomName"); } } /** * Writes a tile entity to NBT. */ public void writeToNBT(NBTTagCompound par1NBTTagCompound) { super.writeToNBT(par1NBTTagCompound); par1NBTTagCompound.setShort("BurnTime", (short)this.furnaceBurnTime); par1NBTTagCompound.setShort("CookTime", (short)this.furnaceCookTime); NBTTagList nbttaglist = new NBTTagList(); for (int i = 0; i < this.furnaceItemStacks.length; ++i) { if (this.furnaceItemStacks[i] != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound1.setByte("Slot", (byte)i); this.furnaceItemStacks[i].writeToNBT(nbttagcompound1); nbttaglist.appendTag(nbttagcompound1); } } par1NBTTagCompound.setTag("Items", nbttaglist); if (this.isInvNameLocalized()) { par1NBTTagCompound.setString("CustomName", this.field_94130_e); } } /** * Returns the maximum stack size for a inventory slot. Seems to always be 64, possibly will be extended. *Isn't * this more of a set than a get?* */ public int getInventoryStackLimit() { return 64; } @SideOnly(Side.CLIENT) /** * Returns an integer between 0 and the passed value representing how close the current item is to being completely * cooked */ public int getCookProgressScaled(int par1) { return this.furnaceCookTime * par1 / 200; } @SideOnly(Side.CLIENT) /** * Returns an integer between 0 and the passed value representing how much burn time is left on the current fuel * item, where 0 means that the item is exhausted and the passed value means that the item is fresh */ public int getBurnTimeRemainingScaled(int par1) { if (this.currentItemBurnTime == 0) { this.currentItemBurnTime = 200; } return this.furnaceBurnTime * par1 / this.currentItemBurnTime; } /** * Returns true if the furnace is currently burning */ public boolean isBurning() { return this.furnaceBurnTime > 0; } /** * Allows the entity to update its state. Overridden in most subclasses, e.g. the mob spawner uses this to count * ticks and creates a new spawn inside its implementation. */ public void updateEntity() { boolean flag = this.furnaceBurnTime > 0; boolean flag1 = false; if (this.furnaceBurnTime > 0) { --this.furnaceBurnTime; } if (!this.worldObj.isRemote) { if (this.furnaceBurnTime == 0 && this.canSmelt()) { this.currentItemBurnTime = this.furnaceBurnTime = getItemBurnTime(this.furnaceItemStacks[1]); if (this.furnaceBurnTime > 0) { flag1 = true; if (this.furnaceItemStacks[1] != null) { --this.furnaceItemStacks[1].stackSize; if (this.furnaceItemStacks[1].stackSize == 0) { this.furnaceItemStacks[1] = this.furnaceItemStacks[1].getItem().getContainerItemStack(furnaceItemStacks[1]); } } } } if (this.isBurning() && this.canSmelt()) { ++this.furnaceCookTime; if (this.furnaceCookTime == 200) { this.furnaceCookTime = 0; this.smeltItem(); flag1 = true; } } else { this.furnaceCookTime = 0; } if (flag != this.furnaceBurnTime > 0) { flag1 = true; BlockFurnace.updateFurnaceBlockState(this.furnaceBurnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); } } if (flag1) { this.onInventoryChanged(); } } /** * Returns true if the furnace can smelt an item, i.e. has a source item, destination stack isn't full, etc. */ private boolean canSmelt() { if (this.furnaceItemStacks[0] == null) { return false; } else { ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.furnaceItemStacks[0]); if (itemstack == null) return false; if (this.furnaceItemStacks[2] == null) return true; if (!this.furnaceItemStacks[2].isItemEqual(itemstack)) return false; int result = furnaceItemStacks[2].stackSize + itemstack.stackSize; return (result <= getInventoryStackLimit() && result <= itemstack.getMaxStackSize()); } } /** * Turn one item from the furnace source stack into the appropriate smelted item in the furnace result stack */ public void smeltItem() { if (this.canSmelt()) { ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.furnaceItemStacks[0]); if (this.furnaceItemStacks[2] == null) { this.furnaceItemStacks[2] = itemstack.copy(); } else if (this.furnaceItemStacks[2].isItemEqual(itemstack)) { furnaceItemStacks[2].stackSize += itemstack.stackSize; } --this.furnaceItemStacks[0].stackSize; if (this.furnaceItemStacks[0].stackSize <= 0) { this.furnaceItemStacks[0] = null; } } } /** * Returns the number of ticks that the supplied fuel item will keep the furnace burning, or 0 if the item isn't * fuel */ public static int getItemBurnTime(ItemStack par0ItemStack) { if (par0ItemStack == null) { return 0; } else { int i = par0ItemStack.getItem().itemID; Item item = par0ItemStack.getItem(); if (i == Item.sugar.itemID) return 1600; //if (i == ) return GameRegistry.getFuelValue(par0ItemStack); } } /** * Return true if item is a fuel source (getItemBurnTime() > 0). */ public static boolean isItemFuel(ItemStack par0ItemStack) { return getItemBurnTime(par0ItemStack) > 0; } /** * Do not make give this method the name canInteractWith because it clashes with Container */ public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer) { return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : par1EntityPlayer.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D; } public void openChest() {} public void closeChest() {} /** * Returns true if automation is allowed to insert the given stack (ignoring stack size) into the given slot. */ public boolean isItemValidForSlot(int par1, ItemStack par2ItemStack) { return par1 == 2 ? false : (par1 == 1 ? isItemFuel(par2ItemStack) : true); } /** * Returns an array containing the indices of the slots that can be accessed by automation on the given side of this * block. */ public int[] getAccessibleSlotsFromSide(int par1) { return par1 == 0 ? slots_bottom : (par1 == 1 ? slots_top : slots_sides); } /** * Returns true if automation can insert the given item in the given slot from the given side. Args: Slot, item, * side */ public boolean canInsertItem(int par1, ItemStack par2ItemStack, int par3) { return this.isItemValidForSlot(par1, par2ItemStack); } /** * Returns true if automation can extract the given item in the given slot from the given side. Args: Slot, item, * side */ public boolean canExtractItem(int par1, ItemStack par2ItemStack, int par3) { return par3 != 0 || par1 != 1 || par2ItemStack.itemID == Item.bucketEmpty.itemID; } @Override public void onInventoryChanged() { // TODO Auto-generated method stub } } Recipes: package gummyBah.MainClass; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class CarmelRecipes { private static final CarmelRecipes smeltingBase = new CarmelRecipes(); /** The list of smelting results. */ private Map smeltingList = new HashMap(); private Map experienceList = new HashMap(); private HashMap<List<Integer>, ItemStack> metaSmeltingList = new HashMap<List<Integer>, ItemStack>(); private HashMap<List<Integer>, Float> metaExperience = new HashMap<List<Integer>, Float>(); /** * Used to call methods addSmelting and getSmeltingResult. */ public static final CarmelRecipes smelting() { return smeltingBase; } private CarmelRecipes() { this.addSmelting(Item.slimeBall.itemID, new ItemStack(gummyBah.MainClass.Main.GGBear), 0.7F); } /** * Adds a smelting recipe. */ public void addSmelting(int par1, ItemStack par2ItemStack, float par3) { this.smeltingList.put(Integer.valueOf(par1), par2ItemStack); this.experienceList.put(Integer.valueOf(par2ItemStack.itemID), Float.valueOf(par3)); } /** * Returns the smelting result of an item. * Deprecated in favor of a metadata sensitive version */ @Deprecated public ItemStack getSmeltingResult(int par1) { return (ItemStack)this.smeltingList.get(Integer.valueOf(par1)); } public Map getSmeltingList() { return this.smeltingList; } @Deprecated //In favor of ItemStack sensitive version public float getExperience(int par1) { return this.experienceList.containsKey(Integer.valueOf(par1)) ? ((Float)this.experienceList.get(Integer.valueOf(par1))).floatValue() : 0.0F; } /** * A metadata sensitive version of adding a furnace recipe. */ public void addSmelting(int itemID, int metadata, ItemStack itemstack, float experience) { metaSmeltingList.put(Arrays.asList(itemID, metadata), itemstack); metaExperience.put(Arrays.asList(itemstack.itemID, itemstack.getItemDamage()), experience); } /** * Used to get the resulting ItemStack form a source ItemStack * @param item The Source ItemStack * @return The result ItemStack */ public ItemStack getSmeltingResult(ItemStack item) { if (item == null) { return null; } ItemStack ret = (ItemStack)metaSmeltingList.get(Arrays.asList(item.itemID, item.getItemDamage())); if (ret != null) { return ret; } return (ItemStack)smeltingList.get(Integer.valueOf(item.itemID)); } /** * Grabs the amount of base experience for this item to give when pulled from the furnace slot. */ public float getExperience(ItemStack item) { if (item == null || item.getItem() == null) { return 0; } float ret = item.getItem().getSmeltingExperience(item); if (ret < 0 && metaExperience.containsKey(Arrays.asList(item.itemID, item.getItemDamage()))) { ret = metaExperience.get(Arrays.asList(item.itemID, item.getItemDamage())); } if (ret < 0 && experienceList.containsKey(item.itemID)) { ret = ((Float)experienceList.get(item.itemID)).floatValue(); } return (ret < 0 ? 0 : ret); } public Map<List<Integer>, ItemStack> getMetaSmeltingList() { return metaSmeltingList; } } Thank you in advance
  20. But I am still getting the gummy bears being named the same
  21. thank you, I didn't realize and thank you for the fast reply
  22. I was making a custom 3D model for an item, yet once I go in 3rd person, I get a certain Stack Trace, I am wondering what is causing it. BTW, I'm using Techne to make the 3D model and I got the tutorial from iChun. Main Class: package bettermc.test; import net.minecraft.block.Block; import net.minecraft.block.BlockBreakable; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.EnumToolMaterial; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.src.ModLoader; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.Configuration; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid="BMC", name="BetterMC", version="1.0.0") @NetworkMod(clientSideRequired=true, serverSideRequired=false) public class Test { public static CreativeTabs tabBlasters = new CreativeTabs("tabBlasters") { public ItemStack getIconItemStack() { return new ItemStack(blasterRifle, 1, 0); } }; public EnumToolMaterial mat; // The instance of your mod that Forge uses. @Instance("Test") public static Test instance; //public final static Item MagicEx1 = new MagicExtracter(5004).func_111206_d("bettermc:MagicDrag").setCreativeTab(tabBlasters).setUnlocalizedName("MagicE1");;; public final static Item Oore = new GraxOre(5000).func_111206_d("bettermc:GraxOre").setCreativeTab(tabBlasters).setUnlocalizedName("GraxOre");;; //public final static Block Magic = new MagicBlock(5003, Material.portal).func_111022_d("bettermc:Magic"); public final static Item PhoenixBlade = new BlazeBlade(5002).func_111206_d("bettermc:BlazeBlade").setCreativeTab(tabBlasters).setUnlocalizedName("PhoenixBlade");;; public final static Item blasterRifle = new Blaster(5001).setCreativeTab(tabBlasters).setUnlocalizedName("Blaster").func_111206_d("bettermc:Blaster"); // Says where the client and server 'proxy' code is loaded. @SidedProxy(clientSide="bettermc.test.client.ClientProxy", serverSide="bettermc.test.CommonProxy") public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { //MinecraftForge.setToolClass(MagicEx1, "MagicTool", 5); Configuration config = new Configuration(event.getSuggestedConfigurationFile()); config.load(); //example int randomBlockID = config.getItem("GraxOre", 20001).getInt(); int randomItemID = config.getItem("Phoenix Blaster", 20000).getInt(); int PhoenixBladeID = config.getItem("PhoenixBlade", 20002).getInt(); config.save(); } @EventHandler public void Init(FMLInitializationEvent event) { //Register mob //Localize mob name LanguageRegistry.addName(Oore, "Nether Essence"); //LanguageRegistry.addName(MagicEx1, "Magic Extracter"); //LanguageRegistry.addName(Magic, "Magic Block"); LanguageRegistry.addName(PhoenixBlade, "Phoenix Blade"); GameRegistry.registerItem(Oore, "Nether Essence"); //GameRegistry.registerItem(MagicEx1, "Magic Extracter"); GameRegistry.registerItem(PhoenixBlade, "Phoenix Blade"); GameRegistry.registerItem(blasterRifle, "Phoenix Blaster"); //GameRegistry.registerBlock(Magic, "Magic"); proxy.registerRenderers(); LanguageRegistry.addName(blasterRifle, "Phoenix Blaster"); RenderingRegistry.registerEntityRenderingHandler(EntityBlasterBolt.class, new RenderSnowball(Oore)); LanguageRegistry.instance().addStringLocalization("itemGroup.tabBlasters", "en_US", "Blaze Phoenix Mod"); ItemStack dirtStack = new ItemStack(Item.ingotIron); ItemStack cobblestack = new ItemStack(blasterRifle); ItemStack gravelStack = new ItemStack(Oore); GameRegistry.addRecipe(cobblestack, "x ", " x ", " yx", 'x', dirtStack, 'y', gravelStack); ItemStack quartzstack = new ItemStack(Item.netherQuartz); ItemStack blazestack = new ItemStack(Item.blazePowder); GameRegistry.addShapelessRecipe(gravelStack, quartzstack, blazestack); } @EventHandler public void postInit(FMLPostInitializationEvent event) { // Stub Method } } Renderer: package bettermc.test; import bettermc.test.Blaster; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; public class ItemRender implements IItemRenderer { protected ModelPhoenixBlastereModel phoenix; ResourceLocation texture = new ResourceLocation("bettermc", "textures/items/PhoenixModel.png)"); private static RenderItem renderItem = new RenderItem(); @Override public boolean handleRenderType(ItemStack itemStack, ItemRenderType type) { switch(type){ case EQUIPPED: return true; default: return false; } } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return false; } @Override public void renderItem(ItemRenderType type, ItemStack itemStack, Object... data) { switch(type){ case EQUIPPED:{ GL11.glPushMatrix(); Minecraft.getMinecraft().renderEngine.func_110581_b(texture); phoenix.render((Entity)data[1], 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0625f); GL11.glPopMatrix(); } default: break; } } } Model Class: package bettermc.test; import bettermc.test.Blaster; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; public class ItemRender implements IItemRenderer { protected ModelPhoenixBlastereModel phoenix; ResourceLocation texture = new ResourceLocation("bettermc", "textures/items/PhoenixModel.png)"); private static RenderItem renderItem = new RenderItem(); @Override public boolean handleRenderType(ItemStack itemStack, ItemRenderType type) { switch(type){ case EQUIPPED: return true; default: return false; } } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return false; } @Override public void renderItem(ItemRenderType type, ItemStack itemStack, Object... data) { switch(type){ case EQUIPPED:{ GL11.glPushMatrix(); Minecraft.getMinecraft().renderEngine.func_110581_b(texture); phoenix.render((Entity)data[1], 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0625f); GL11.glPopMatrix(); } default: break; } } } [/Code] Item(Its a spade cause I was trying to make it not look like an item in hand and more like a sword): [code] package bettermc.test; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.monster.EntityBlaze; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntitySnowball; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.item.EnumToolMaterial; import net.minecraft.item.Item; import net.minecraft.item.ItemSpade; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; public class Blaster extends ItemSpade { public Blaster(int id) { super(id, EnumToolMaterial.PHOENIX); } @Override public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World,EntityPlayer par3EntityPlayer) { if(par3EntityPlayer.capabilities.isCreativeMode||par3EntityPlayer.inventory.consumeInventoryItem(Item.redstone.itemID)) { par2World.playSoundAtEntity(par3EntityPlayer, "random.fuse", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); par2World.spawnEntityInWorld(new EntityBlasterBolt(par2World, par3EntityPlayer)); } return par1ItemStack; } } Stack Trace: 2014-01-02 21:53:12 [sEVERE] [Minecraft-Client] ########## GL ERROR ########## 2014-01-02 21:53:12 [sEVERE] [Minecraft-Client] @ Post render 2014-01-02 21:53:12 [sEVERE] [Minecraft-Client] 1283: Stack overflow 2014-01-02 21:53:12 [iNFO] [sTDERR] java.lang.NullPointerException 2014-01-02 21:53:12 [iNFO] [sTDERR] at bettermc.test.ItemRender.renderItem(ItemRender.java:45) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraftforge.client.ForgeHooksClient.renderEquippedItem(ForgeHooksClient.java:207) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.ItemRenderer.renderItem(ItemRenderer.java:89) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.ItemRenderer.renderItem(ItemRenderer.java:68) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.entity.RenderPlayer.renderSpecials(RenderPlayer.java:408) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.entity.RenderPlayer.renderEquippedItems(RenderPlayer.java:519) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.entity.RendererLivingEntity.func_130000_a(RendererLivingEntity.java:218) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.entity.RenderPlayer.func_130009_a(RenderPlayer.java:166) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.entity.RenderPlayer.doRender(RenderPlayer.java:553) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.entity.RenderManager.renderEntityWithPosYaw(RenderManager.java:312) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.entity.RenderManager.renderEntity(RenderManager.java:281) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:524) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1160) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1006) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:934) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:826) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.client.main.Main.main(Main.java:93) 2014-01-02 21:53:12 [iNFO] [sTDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2014-01-02 21:53:12 [iNFO] [sTDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:53:12 [iNFO] [sTDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:53:12 [iNFO] [sTDERR] at java.lang.reflect.Method.invoke(Unknown Source) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.launchwrapper.Launch.launch(Launch.java:57) 2014-01-02 21:53:12 [iNFO] [sTDERR] at net.minecraft.launchwrapper.Launch.main(Launch.java:18)
  23. So I am trying to make a Tile Entity similar to a furnace, I even copied the code and edited it. But even when I leave out the Tile Entity, I keep getting an error on the main constructor of my item. I am wondering what exactly is wrong with my code. Also, My GummyBears, I obviously assign different data values and registers, yet when I start up the game, all of them are named Blue Gummy Bear, yet have different textures. Main Class: package gummyBah.MainClass; import net.minecraft.block.Block; import net.minecraft.block.BlockBreakable; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.src.ModLoader; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.Configuration; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid="GummyBah", name="GummyBear", version="1.0.0") @NetworkMod(clientSideRequired=true, serverSideRequired=false) public class Main { public static CreativeTabs tabBlasters = new CreativeTabs("tabBlasters") { public ItemStack getIconItemStack() { return new ItemStack(RGummyBear, 1, 0); } }; // The instance of your mod that Forge uses. public final static Item RGummyBear = new RGummyBear(9000, 1, 1, false).setPotionEffect(Potion.fireResistance.id, 300, 1, 100.0F).func_111206_d("bettermc:GummyBearRed");; public final static Item GGBear = new GGummyBear(9001, 1, 1, false).setPotionEffect(Potion.jump.id, 300, 5, 100.0F).func_111206_d("bettermc:GummyBearGreen");; public final static Item BGBear = new BGummyBear(9002, 1, 1, false).setPotionEffect(Potion.waterBreathing.id, 300, 5, 100.0F).func_111206_d("bettermc:GummyBearBlue");; public static Block CarmelOven; @Instance("Test") public static Main instance; // Says where the client and server 'proxy' code is loaded. @SidedProxy(clientSide="gummyBah.MainClass.client.ClientProxy", serverSide="gummyBah.MainClass.CommonProxy") public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { CarmelOven = new Carmalizer(9003, Material.ground);; MinecraftForge.setBlockHarvestLevel(CarmelOven, "pickaxe", 0); Configuration config = new Configuration(event.getSuggestedConfigurationFile()); config.load(); config.save(); } @EventHandler public void Init(FMLInitializationEvent event) { LanguageRegistry.instance().addStringLocalization("carmel", "en_US", "Carmalizer"); GameRegistry.registerBlock(CarmelOven, "Carmalizer"); LanguageRegistry.addName(RGummyBear, "Red Gummy Bear"); GameRegistry.registerTileEntity(gummyBah.MainClass.CarmalizerTileEntity.class, "carmal"); LanguageRegistry.addName(GGBear, "Green Gummy Bear"); LanguageRegistry.addName(BGBear, "Blue Gummy Bear"); GameRegistry.registerItem(RGummyBear, "Red Gummy Bear"); GameRegistry.registerItem(GGBear, "Green Gummy Bear"); GameRegistry.registerItem(BGBear, "Blue Gummy Bear"); LanguageRegistry.instance().addStringLocalization("tabBlasters", "en_US", "Gummy Mod"); proxy.registerRenderers(); } @EventHandler public void postInit(FMLPostInitializationEvent event) { // Stub Method } } Gummy Bear Class: Just replace the G in the name w/ a B or R for the other gummy bears package gummyBah.MainClass; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemFood; import net.minecraft.potion.Potion; public class GGummyBear extends ItemFood { public GGummyBear(int par1, int par2, float par3, boolean par4) { super(par1, par2, par3, par4); } } My Tile Entity Block: package gummyBah.MainClass; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class Carmalizer extends Block { public Carmalizer(int id, Material material){ super(id, material); this.setHardness(0.5F); this.setStepSound(Block.soundGravelFootstep); this.setUnlocalizedName("carmel"); this.setCreativeTab(gummyBah.MainClass.Main.tabBlasters); this.func_111022_d("bettermc:CandyFurnace"); } /**public TileEntity createTileEntity(World world, int metadata) { return new CarmalizerTileEntity(); } **/ } Tile Entity: package gummyBah.MainClass; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockFurnace; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemHoe; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.item.ItemTool; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDummyContainer; public class CarmalizerTileEntity extends TileEntity implements ISidedInventory { private static final int[] slots_top = new int[] {0}; private static final int[] slots_bottom = new int[] {2, 1}; private static final int[] slots_sides = new int[] {1}; /** * The ItemStacks that hold the items currently being used in the furnace */ private ItemStack[] furnaceItemStacks = new ItemStack[3]; /** The number of ticks that the furnace will keep burning */ public int furnaceBurnTime; /** * The number of ticks that a fresh copy of the currently-burning item would keep the furnace burning for */ public int currentItemBurnTime; /** The number of ticks that the current item has been cooking for */ public int furnaceCookTime; private String field_94130_e; /** * Returns the number of slots in the inventory. */ public int getSizeInventory() { return this.furnaceItemStacks.length; } /** * Returns the stack in slot i */ public ItemStack getStackInSlot(int par1) { return this.furnaceItemStacks[par1]; } /** * Removes from an inventory slot (first arg) up to a specified number (second arg) of items and returns them in a * new stack. */ public ItemStack decrStackSize(int par1, int par2) { if (this.furnaceItemStacks[par1] != null) { ItemStack itemstack; if (this.furnaceItemStacks[par1].stackSize <= par2) { itemstack = this.furnaceItemStacks[par1]; this.furnaceItemStacks[par1] = null; return itemstack; } else { itemstack = this.furnaceItemStacks[par1].splitStack(par2); if (this.furnaceItemStacks[par1].stackSize == 0) { this.furnaceItemStacks[par1] = null; } return itemstack; } } else { return null; } } /** * When some containers are closed they call this on each slot, then drop whatever it returns as an EntityItem - * like when you close a workbench GUI. */ public ItemStack getStackInSlotOnClosing(int par1) { if (this.furnaceItemStacks[par1] != null) { ItemStack itemstack = this.furnaceItemStacks[par1]; this.furnaceItemStacks[par1] = null; return itemstack; } else { return null; } } /** * Sets the given item stack to the specified slot in the inventory (can be crafting or armor sections). */ public void setInventorySlotContents(int par1, ItemStack par2ItemStack) { this.furnaceItemStacks[par1] = par2ItemStack; if (par2ItemStack != null && par2ItemStack.stackSize > this.getInventoryStackLimit()) { par2ItemStack.stackSize = this.getInventoryStackLimit(); } } /** * Returns the name of the inventory. */ public String getInvName() { return this.isInvNameLocalized() ? this.field_94130_e : "container.furnace"; } /** * If this returns false, the inventory name will be used as an unlocalized name, and translated into the player's * language. Otherwise it will be used directly. */ public boolean isInvNameLocalized() { return this.field_94130_e != null && this.field_94130_e.length() > 0; } /** * Sets the custom display name to use when opening a GUI linked to this tile entity. */ public void setGuiDisplayName(String par1Str) { this.field_94130_e = par1Str; } /** * Reads a tile entity from NBT. */ public void readFromNBT(NBTTagCompound par1NBTTagCompound) { super.readFromNBT(par1NBTTagCompound); NBTTagList nbttaglist = par1NBTTagCompound.getTagList("Items"); this.furnaceItemStacks = new ItemStack[this.getSizeInventory()]; for (int i = 0; i < nbttaglist.tagCount(); ++i) { NBTTagCompound nbttagcompound1 = (NBTTagCompound)nbttaglist.tagAt(i); byte b0 = nbttagcompound1.getByte("Slot"); if (b0 >= 0 && b0 < this.furnaceItemStacks.length) { this.furnaceItemStacks[b0] = ItemStack.loadItemStackFromNBT(nbttagcompound1); } } this.furnaceBurnTime = par1NBTTagCompound.getShort("BurnTime"); this.furnaceCookTime = par1NBTTagCompound.getShort("CookTime"); this.currentItemBurnTime = getItemBurnTime(this.furnaceItemStacks[1]); if (par1NBTTagCompound.hasKey("CustomName")) { this.field_94130_e = par1NBTTagCompound.getString("CustomName"); } } /** * Writes a tile entity to NBT. */ public void writeToNBT(NBTTagCompound par1NBTTagCompound) { super.writeToNBT(par1NBTTagCompound); par1NBTTagCompound.setShort("BurnTime", (short)this.furnaceBurnTime); par1NBTTagCompound.setShort("CookTime", (short)this.furnaceCookTime); NBTTagList nbttaglist = new NBTTagList(); for (int i = 0; i < this.furnaceItemStacks.length; ++i) { if (this.furnaceItemStacks[i] != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound1.setByte("Slot", (byte)i); this.furnaceItemStacks[i].writeToNBT(nbttagcompound1); nbttaglist.appendTag(nbttagcompound1); } } par1NBTTagCompound.setTag("Items", nbttaglist); if (this.isInvNameLocalized()) { par1NBTTagCompound.setString("CustomName", this.field_94130_e); } } /** * Returns the maximum stack size for a inventory slot. Seems to always be 64, possibly will be extended. *Isn't * this more of a set than a get?* */ public int getInventoryStackLimit() { return 64; } @SideOnly(Side.CLIENT) /** * Returns an integer between 0 and the passed value representing how close the current item is to being completely * cooked */ public int getCookProgressScaled(int par1) { return this.furnaceCookTime * par1 / 200; } @SideOnly(Side.CLIENT) /** * Returns an integer between 0 and the passed value representing how much burn time is left on the current fuel * item, where 0 means that the item is exhausted and the passed value means that the item is fresh */ public int getBurnTimeRemainingScaled(int par1) { if (this.currentItemBurnTime == 0) { this.currentItemBurnTime = 200; } return this.furnaceBurnTime * par1 / this.currentItemBurnTime; } /** * Returns true if the furnace is currently burning */ public boolean isBurning() { return this.furnaceBurnTime > 0; } /** * Allows the entity to update its state. Overridden in most subclasses, e.g. the mob spawner uses this to count * ticks and creates a new spawn inside its implementation. */ public void updateEntity() { boolean flag = this.furnaceBurnTime > 0; boolean flag1 = false; if (this.furnaceBurnTime > 0) { --this.furnaceBurnTime; } if (!this.worldObj.isRemote) { if (this.furnaceBurnTime == 0 && this.canSmelt()) { this.currentItemBurnTime = this.furnaceBurnTime = getItemBurnTime(this.furnaceItemStacks[1]); if (this.furnaceBurnTime > 0) { flag1 = true; if (this.furnaceItemStacks[1] != null) { --this.furnaceItemStacks[1].stackSize; if (this.furnaceItemStacks[1].stackSize == 0) { this.furnaceItemStacks[1] = this.furnaceItemStacks[1].getItem().getContainerItemStack(furnaceItemStacks[1]); } } } } if (this.isBurning() && this.canSmelt()) { ++this.furnaceCookTime; if (this.furnaceCookTime == 200) { this.furnaceCookTime = 0; this.smeltItem(); flag1 = true; } } else { this.furnaceCookTime = 0; } if (flag != this.furnaceBurnTime > 0) { flag1 = true; BlockFurnace.updateFurnaceBlockState(this.furnaceBurnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); } } if (flag1) { this.onInventoryChanged(); } } /** * Returns true if the furnace can smelt an item, i.e. has a source item, destination stack isn't full, etc. */ private boolean canSmelt() { if (this.furnaceItemStacks[0] == null) { return false; } else { ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.furnaceItemStacks[0]); if (itemstack == null) return false; if (this.furnaceItemStacks[2] == null) return true; if (!this.furnaceItemStacks[2].isItemEqual(itemstack)) return false; int result = furnaceItemStacks[2].stackSize + itemstack.stackSize; return (result <= getInventoryStackLimit() && result <= itemstack.getMaxStackSize()); } } /** * Turn one item from the furnace source stack into the appropriate smelted item in the furnace result stack */ public void smeltItem() { if (this.canSmelt()) { ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.furnaceItemStacks[0]); if (this.furnaceItemStacks[2] == null) { this.furnaceItemStacks[2] = itemstack.copy(); } else if (this.furnaceItemStacks[2].isItemEqual(itemstack)) { furnaceItemStacks[2].stackSize += itemstack.stackSize; } --this.furnaceItemStacks[0].stackSize; if (this.furnaceItemStacks[0].stackSize <= 0) { this.furnaceItemStacks[0] = null; } } } /** * Returns the number of ticks that the supplied fuel item will keep the furnace burning, or 0 if the item isn't * fuel */ public static int getItemBurnTime(ItemStack par0ItemStack) { if (par0ItemStack == null) { return 0; } else { int i = par0ItemStack.getItem().itemID; Item item = par0ItemStack.getItem(); if (i == Item.sugar.itemID) return 1600; //if (i == ) return GameRegistry.getFuelValue(par0ItemStack); } } /** * Return true if item is a fuel source (getItemBurnTime() > 0). */ public static boolean isItemFuel(ItemStack par0ItemStack) { return getItemBurnTime(par0ItemStack) > 0; } /** * Do not make give this method the name canInteractWith because it clashes with Container */ public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer) { return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : par1EntityPlayer.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D; } public void openChest() {} public void closeChest() {} /** * Returns true if automation is allowed to insert the given stack (ignoring stack size) into the given slot. */ public boolean isItemValidForSlot(int par1, ItemStack par2ItemStack) { return par1 == 2 ? false : (par1 == 1 ? isItemFuel(par2ItemStack) : true); } /** * Returns an array containing the indices of the slots that can be accessed by automation on the given side of this * block. */ public int[] getAccessibleSlotsFromSide(int par1) { return par1 == 0 ? slots_bottom : (par1 == 1 ? slots_top : slots_sides); } /** * Returns true if automation can insert the given item in the given slot from the given side. Args: Slot, item, * side */ public boolean canInsertItem(int par1, ItemStack par2ItemStack, int par3) { return this.isItemValidForSlot(par1, par2ItemStack); } /** * Returns true if automation can extract the given item in the given slot from the given side. Args: Slot, item, * side */ public boolean canExtractItem(int par1, ItemStack par2ItemStack, int par3) { return par3 != 0 || par1 != 1 || par2ItemStack.itemID == Item.bucketEmpty.itemID; } @Override public void onInventoryChanged() { // TODO Auto-generated method stub } My Stack Trace: 2014-01-02 21:25:00 [iNFO] [sTDOUT] ---- Minecraft Crash Report ---- 2014-01-02 21:25:00 [iNFO] [sTDOUT] // Daisy, daisy... 2014-01-02 21:25:00 [iNFO] [sTDOUT] 2014-01-02 21:25:00 [iNFO] [sTDOUT] Time: 1/2/14 9:25 PM 2014-01-02 21:25:00 [iNFO] [sTDOUT] Description: Initializing game 2014-01-02 21:25:00 [iNFO] [sTDOUT] 2014-01-02 21:25:00 [iNFO] [sTDOUT] java.lang.ArrayIndexOutOfBoundsException: 9003 2014-01-02 21:25:00 [iNFO] [sTDOUT] at net.minecraft.block.Block.<init>(Block.java:346) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at gummyBah.MainClass.Carmalizer.<init>(Carmalizer.java:11) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at gummyBah.MainClass.Main.preInit(Main.java:55) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at java.lang.reflect.Method.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:540) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at java.lang.reflect.Method.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.post(EventBus.java:267) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at java.lang.reflect.Method.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.post(EventBus.java:267) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at cpw.mods.fml.common.Loader.loadMods(Loader.java:521) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:182) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at net.minecraft.client.Minecraft.startGame(Minecraft.java:470) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:796) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at net.minecraft.client.main.Main.main(Main.java:93) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at java.lang.reflect.Method.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at net.minecraft.launchwrapper.Launch.launch(Launch.java:57) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at net.minecraft.launchwrapper.Launch.main(Launch.java:18) 2014-01-02 21:25:00 [iNFO] [sTDOUT] 2014-01-02 21:25:00 [iNFO] [sTDOUT] 2014-01-02 21:25:00 [iNFO] [sTDOUT] A detailed walkthrough of the error, its code path and all known details is as follows: 2014-01-02 21:25:00 [iNFO] [sTDOUT] --------------------------------------------------------------------------------------- 2014-01-02 21:25:00 [iNFO] [sTDOUT] 2014-01-02 21:25:00 [iNFO] [sTDOUT] -- Head -- 2014-01-02 21:25:00 [iNFO] [sTDOUT] Stacktrace: 2014-01-02 21:25:00 [iNFO] [sTDOUT] at net.minecraft.block.Block.<init>(Block.java:346) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at gummyBah.MainClass.Carmalizer.<init>(Carmalizer.java:11) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at gummyBah.MainClass.Main.preInit(Main.java:55) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at java.lang.reflect.Method.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:540) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at java.lang.reflect.Method.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.post(EventBus.java:267) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at java.lang.reflect.Method.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at com.google.common.eventbus.EventBus.post(EventBus.java:267) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at cpw.mods.fml.common.Loader.loadMods(Loader.java:521) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:182) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at net.minecraft.client.Minecraft.startGame(Minecraft.java:470) 2014-01-02 21:25:00 [iNFO] [sTDOUT] 2014-01-02 21:25:00 [iNFO] [sTDOUT] -- Initialization -- 2014-01-02 21:25:00 [iNFO] [sTDOUT] Details: 2014-01-02 21:25:00 [iNFO] [sTDOUT] Stacktrace: 2014-01-02 21:25:00 [iNFO] [sTDOUT] at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:796) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at net.minecraft.client.main.Main.main(Main.java:93) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at java.lang.reflect.Method.invoke(Unknown Source) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at net.minecraft.launchwrapper.Launch.launch(Launch.java:57) 2014-01-02 21:25:00 [iNFO] [sTDOUT] at net.minecraft.launchwrapper.Launch.main(Launch.java:18) 2014-01-02 21:25:00 [iNFO] [sTDOUT] 2014-01-02 21:25:00 [iNFO] [sTDOUT] -- System Details -- 2014-01-02 21:25:00 [iNFO] [sTDOUT] Details: 2014-01-02 21:25:00 [iNFO] [sTDOUT] Minecraft Version: 1.6.2 2014-01-02 21:25:00 [iNFO] [sTDOUT] Operating System: Windows 7 (x86) version 6.1 2014-01-02 21:25:00 [iNFO] [sTDOUT] Java Version: 1.7.0_45, Oracle Corporation 2014-01-02 21:25:00 [iNFO] [sTDOUT] Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation 2014-01-02 21:25:00 [iNFO] [sTDOUT] Memory: 970146424 bytes (925 MB) / 1060372480 bytes (1011 MB) up to 1060372480 bytes (1011 MB) 2014-01-02 21:25:00 [iNFO] [sTDOUT] JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M 2014-01-02 21:25:00 [iNFO] [sTDOUT] AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used 2014-01-02 21:25:00 [iNFO] [sTDOUT] Suspicious classes: FML and Forge are installed 2014-01-02 21:25:00 [iNFO] [sTDOUT] IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 2014-01-02 21:25:00 [iNFO] [sTDOUT] FML: MCP v8.04 FML v6.2.35.804 Minecraft Forge 9.10.0.804 4 mods loaded, 4 mods active 2014-01-02 21:25:00 [iNFO] [sTDOUT] mcp{8.04} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized 2014-01-02 21:25:00 [iNFO] [sTDOUT] FML{6.2.35.804} [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized 2014-01-02 21:25:00 [iNFO] [sTDOUT] Forge{9.10.0.804} [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized 2014-01-02 21:25:00 [iNFO] [sTDOUT] GummyBah{1.0.0} [GummyBear] (bin) Unloaded->Constructed->Errored 2014-01-02 21:25:00 [iNFO] [sTDOUT] Launched Version: 1.6 2014-01-02 21:25:00 [iNFO] [sTDOUT] LWJGL: 2.9.0 2014-01-02 21:25:00 [iNFO] [sTDOUT] OpenGL: Intel 945GM GL version 1.4.0 - Build 8.14.10.1930, Intel 2014-01-02 21:25:00 [iNFO] [sTDOUT] Is Modded: Definitely; Client brand changed to 'fml,forge' 2014-01-02 21:25:00 [iNFO] [sTDOUT] Type: Client (map_client.txt) 2014-01-02 21:25:00 [iNFO] [sTDOUT] Resource Pack: Default 2014-01-02 21:25:00 [iNFO] [sTDOUT] Current Language: English (US) 2014-01-02 21:25:00 [iNFO] [sTDOUT] Profiler Position: N/A (disabled) 2014-01-02 21:25:00 [iNFO] [sTDOUT] Vec3 Pool Size: ~~ERROR~~ NullPointerException: null 2014-01-02 21:25:00 [iNFO] [sTDOUT] #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\Dom\Desktop\New folder (2)\forge\mcp\jars\.\crash-reports\crash-2014-01-02_21.25.00-client.txt AL lib: (EE) alc_cleanup: 1 device not closed CarmalizerRegistry: package gummyBah.MainClass; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class CarmelRecipes { private static final CarmelRecipes smeltingBase = new CarmelRecipes(); /** The list of smelting results. */ private Map smeltingList = new HashMap(); private Map experienceList = new HashMap(); private HashMap<List<Integer>, ItemStack> metaSmeltingList = new HashMap<List<Integer>, ItemStack>(); private HashMap<List<Integer>, Float> metaExperience = new HashMap<List<Integer>, Float>(); /** * Used to call methods addSmelting and getSmeltingResult. */ public static final CarmelRecipes smelting() { return smeltingBase; } private CarmelRecipes() { this.addSmelting(Item.slimeBall.itemID, new ItemStack(gummyBah.MainClass.Main.GGBear), 0.7F); } /** * Adds a smelting recipe. */ public void addSmelting(int par1, ItemStack par2ItemStack, float par3) { this.smeltingList.put(Integer.valueOf(par1), par2ItemStack); this.experienceList.put(Integer.valueOf(par2ItemStack.itemID), Float.valueOf(par3)); } /** * Returns the smelting result of an item. * Deprecated in favor of a metadata sensitive version */ @Deprecated public ItemStack getSmeltingResult(int par1) { return (ItemStack)this.smeltingList.get(Integer.valueOf(par1)); } public Map getSmeltingList() { return this.smeltingList; } @Deprecated //In favor of ItemStack sensitive version public float getExperience(int par1) { return this.experienceList.containsKey(Integer.valueOf(par1)) ? ((Float)this.experienceList.get(Integer.valueOf(par1))).floatValue() : 0.0F; } /** * A metadata sensitive version of adding a furnace recipe. */ public void addSmelting(int itemID, int metadata, ItemStack itemstack, float experience) { metaSmeltingList.put(Arrays.asList(itemID, metadata), itemstack); metaExperience.put(Arrays.asList(itemstack.itemID, itemstack.getItemDamage()), experience); } /** * Used to get the resulting ItemStack form a source ItemStack * @param item The Source ItemStack * @return The result ItemStack */ public ItemStack getSmeltingResult(ItemStack item) { if (item == null) { return null; } ItemStack ret = (ItemStack)metaSmeltingList.get(Arrays.asList(item.itemID, item.getItemDamage())); if (ret != null) { return ret; } return (ItemStack)smeltingList.get(Integer.valueOf(item.itemID)); } /** * Grabs the amount of base experience for this item to give when pulled from the furnace slot. */ public float getExperience(ItemStack item) { if (item == null || item.getItem() == null) { return 0; } float ret = item.getItem().getSmeltingExperience(item); if (ret < 0 && metaExperience.containsKey(Arrays.asList(item.itemID, item.getItemDamage()))) { ret = metaExperience.get(Arrays.asList(item.itemID, item.getItemDamage())); } if (ret < 0 && experienceList.containsKey(item.itemID)) { ret = ((Float)experienceList.get(item.itemID)).floatValue(); } return (ret < 0 ? 0 : ret); } public Map<List<Integer>, ItemStack> getMetaSmeltingList() { return metaSmeltingList; } }
  24. I was trying to make a 3D item in my hand with a mod like the Trail Mix mod. I looked at iChun's tutorial and did everything right. I still get this stack trace every time i go in third person to render it: Main Mod File: Item Renderer Class Client Proxy Class Model Itself Exported from Techne Please Tell Me whats wrong with it. Thank you in advance!
×
×
  • Create New...

Important Information

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