Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

MrNegaBlox

Members
  • Joined

  • Last visited

Everything posted by MrNegaBlox

  1. 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
  2. What do I do to sync the client and server? I still need help
  3. Sooo What do I do?
  4. 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 } }
  5. Umm... That just gives a speed boost to the pig. That doesn't control it, it just checks if it is controlling it
  6. 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; } }
  7. ...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
  8. 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?
  9. Yes, But I just didn't know where to find the events. I looked in Entity Class and found no Interact thing.
  10. 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?
  11. 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?
  12. 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); } }
  13. 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.
  14. 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?
  15. 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
  16. 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)
  17. 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
  18. But I am still getting the gummy bears being named the same
  19. thank you, I didn't realize and thank you for the fast reply
  20. 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)
  21. 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; } }
  22. 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!

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.