Jump to content

Monstrous_Apple

Members
  • Posts

    217
  • Joined

  • Last visited

Everything posted by Monstrous_Apple

  1. So if D7 was wrong what should I do?
  2. So if D7 was wrong what should I do?
  3. What do I add to this exact code to make it so that the pig will only drop a "pig soul" when holding (a.k.a killing the pig with) a certain sword? //Pig Soul @SubscribeEvent public void addEntityDrop5 (LivingDropsEvent event) { if (event.entity instanceof EntityPig) { ItemStack itemstack = new ItemStack(MASouls.PigSoul, 1); event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ, itemstack)); } }
  4. What do I add to this exact code to make it so that the pig will only drop a "pig soul" when holding (a.k.a killing the pig with) a certain sword? //Pig Soul @SubscribeEvent public void addEntityDrop5 (LivingDropsEvent event) { if (event.entity instanceof EntityPig) { ItemStack itemstack = new ItemStack(MASouls.PigSoul, 1); event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ, itemstack)); } }
  5. I only have one block state but in models blocks I have them all, do I need to make the block states for the rest too? I also have this as the one block state: { "variants": { "type=wood": { "model": "ma:wood_block_breaker" }, "type=stone": { "model": "ma:stone_block_breaker" }, "type=iron": { "model": "ma:iron_block_breaker" }, "type=gold": { "model": "ma:gold_block_breaker" }, "type=diamond": { "model": "ma:diamond_block_breaker" }, "type=copper": { "model": "ma:copper_block_breaker" } } }
  6. I only have one block state but in models blocks I have them all, do I need to make the block states for the rest too? I also have this as the one block state: { "variants": { "type=wood": { "model": "ma:wood_block_breaker" }, "type=stone": { "model": "ma:stone_block_breaker" }, "type=iron": { "model": "ma:iron_block_breaker" }, "type=gold": { "model": "ma:gold_block_breaker" }, "type=diamond": { "model": "ma:diamond_block_breaker" }, "type=copper": { "model": "ma:copper_block_breaker" } } }
  7. Well I managed to get the textures working... well sort of, they load in creative tabs and in my hand, but when I place down the stone, iron, gold, diamond or copper blocks they still have the wood blocks texture? If you have a look at the above code you'll understand what I mean
  8. Well I managed to get the textures working... well sort of, they load in creative tabs and in my hand, but when I place down the stone, iron, gold, diamond or copper blocks they still have the wood blocks texture? If you have a look at the above code you'll understand what I mean
  9. The strange thing is, my gears textures load it's my block breaker textures that don't?
  10. The strange thing is, my gears textures load it's my block breaker textures that don't?
  11. Okay I got that error sorted, but now my textures don't load, can anyone tell why from this?:
  12. Okay I got that error sorted, but now my textures don't load, can anyone tell why from this?:
  13. I was passing it to MAMetaBlocks, is there something wrong I did in there? Client Proxy: package com.MonstrousApple.mod.proxy; import com.MonstrousApple.mod.blocks.MABlocks; import com.MonstrousApple.mod.blocks.MAMetaBlocks; import com.MonstrousApple.mod.items.MAItems; import com.MonstrousApple.mod.metadataitems.MAMetadataItems; import com.MonstrousApple.mod.render.MABlockRender; import com.MonstrousApple.mod.render.MAGemRender; import com.MonstrousApple.mod.render.MAGemstoneRender; import com.MonstrousApple.mod.render.MAItemRender; import com.MonstrousApple.mod.render.MAMetadataItemRender; import com.MonstrousApple.mod.render.MAOreRender; import com.MonstrousApple.mod.render.MASoulRender; import net.minecraft.client.resources.model.ModelBakery; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.item.Item; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; public class ClientProxy extends CommonProxy { public void preInit(FMLPreInitializationEvent preEvent) { super.preInit(preEvent); } public void init(FMLInitializationEvent event) { super.init(event); MABlockRender.registerBlockRender(); MAItemRender.registerItemRender(); MAOreRender.registerOreRender(); MAGemRender.registerGemRender(); MASoulRender.registerSoulRender(); MAGemstoneRender.registerGemstoneRender(); MAMetadataItemRender.registerMetadataItemRender(); } @Override public void registerModelBakery() { //Gears ModelBakery.registerItemVariants(MAMetadataItems.Gear, new ResourceLocation("ma:WoodGear")); ModelBakery.registerItemVariants(MAMetadataItems.Gear, new ResourceLocation("ma:StoneGear")); ModelBakery.registerItemVariants(MAMetadataItems.Gear, new ResourceLocation("ma:IronGear")); ModelBakery.registerItemVariants(MAMetadataItems.Gear, new ResourceLocation("ma:GoldGear")); ModelBakery.registerItemVariants(MAMetadataItems.Gear, new ResourceLocation("ma:DiamondGear")); ModelBakery.registerItemVariants(MAMetadataItems.Gear, new ResourceLocation("ma:CopperGear")); //Block Breakers ModelBakery.registerItemVariants(Item.getItemFromBlock(MAMetaBlocks.block_breaker), new ResourceLocation ("ma:wood_block_breaker")); ModelBakery.registerItemVariants(Item.getItemFromBlock(MAMetaBlocks.block_breaker), new ResourceLocation ("ma:stone_block_breaker")); ModelBakery.registerItemVariants(Item.getItemFromBlock(MAMetaBlocks.block_breaker), new ResourceLocation ("ma:iron_block_breaker")); ModelBakery.registerItemVariants(Item.getItemFromBlock(MAMetaBlocks.block_breaker), new ResourceLocation ("ma:gold_block_breaker")); ModelBakery.registerItemVariants(Item.getItemFromBlock(MAMetaBlocks.block_breaker), new ResourceLocation ("ma:diamond_block_breaker")); ModelBakery.registerItemVariants(Item.getItemFromBlock(MAMetaBlocks.block_breaker), new ResourceLocation ("ma:copper_block_breaker")); } public void postInit(FMLPostInitializationEvent postEvent) { super.postInit(postEvent); } } MAMetaBlocks: package com.MonstrousApple.mod.blocks; import com.MonstrousApple.mod.MAGlobal; import com.MonstrousApple.mod.handler.EnumHandler; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.item.Item; import net.minecraftforge.fml.common.registry.GameRegistry; public class MAMetaBlocks { public static Block block_breaker; public static void init() { block_breaker = new BlockBlockBreaker("block_breaker"); } public static void register() { GameRegistry.registerBlock(block_breaker, ItemBlockMeta.class, "block_breaker"); } public static void registerRenders() { for(int i = 0; i < EnumHandler.BlockBreakerTypes.values().length; i++) { registerRender(block_breaker, i, EnumHandler.BlockBreakerTypes.values()[i].getName() + "_block_breaker"); } } public static void registerBlock(Block block) { GameRegistry.registerBlock(block, block.getUnlocalizedName().substring(5)); System.out.println("Registered Block: " + block.getUnlocalizedName().substring(5)); } public static void registerRender(Block block, int meta, String fileName) { Item item = Item.getItemFromBlock(block); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, meta, new ModelResourceLocation(MAGlobal.MOD_ID + ":" + fileName, "inventory")); } }
  14. I was passing it to MAMetaBlocks, is there something wrong I did in there? Client Proxy: package com.MonstrousApple.mod.proxy; import com.MonstrousApple.mod.blocks.MABlocks; import com.MonstrousApple.mod.blocks.MAMetaBlocks; import com.MonstrousApple.mod.items.MAItems; import com.MonstrousApple.mod.metadataitems.MAMetadataItems; import com.MonstrousApple.mod.render.MABlockRender; import com.MonstrousApple.mod.render.MAGemRender; import com.MonstrousApple.mod.render.MAGemstoneRender; import com.MonstrousApple.mod.render.MAItemRender; import com.MonstrousApple.mod.render.MAMetadataItemRender; import com.MonstrousApple.mod.render.MAOreRender; import com.MonstrousApple.mod.render.MASoulRender; import net.minecraft.client.resources.model.ModelBakery; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.item.Item; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; public class ClientProxy extends CommonProxy { public void preInit(FMLPreInitializationEvent preEvent) { super.preInit(preEvent); } public void init(FMLInitializationEvent event) { super.init(event); MABlockRender.registerBlockRender(); MAItemRender.registerItemRender(); MAOreRender.registerOreRender(); MAGemRender.registerGemRender(); MASoulRender.registerSoulRender(); MAGemstoneRender.registerGemstoneRender(); MAMetadataItemRender.registerMetadataItemRender(); } @Override public void registerModelBakery() { //Gears ModelBakery.registerItemVariants(MAMetadataItems.Gear, new ResourceLocation("ma:WoodGear")); ModelBakery.registerItemVariants(MAMetadataItems.Gear, new ResourceLocation("ma:StoneGear")); ModelBakery.registerItemVariants(MAMetadataItems.Gear, new ResourceLocation("ma:IronGear")); ModelBakery.registerItemVariants(MAMetadataItems.Gear, new ResourceLocation("ma:GoldGear")); ModelBakery.registerItemVariants(MAMetadataItems.Gear, new ResourceLocation("ma:DiamondGear")); ModelBakery.registerItemVariants(MAMetadataItems.Gear, new ResourceLocation("ma:CopperGear")); //Block Breakers ModelBakery.registerItemVariants(Item.getItemFromBlock(MAMetaBlocks.block_breaker), new ResourceLocation ("ma:wood_block_breaker")); ModelBakery.registerItemVariants(Item.getItemFromBlock(MAMetaBlocks.block_breaker), new ResourceLocation ("ma:stone_block_breaker")); ModelBakery.registerItemVariants(Item.getItemFromBlock(MAMetaBlocks.block_breaker), new ResourceLocation ("ma:iron_block_breaker")); ModelBakery.registerItemVariants(Item.getItemFromBlock(MAMetaBlocks.block_breaker), new ResourceLocation ("ma:gold_block_breaker")); ModelBakery.registerItemVariants(Item.getItemFromBlock(MAMetaBlocks.block_breaker), new ResourceLocation ("ma:diamond_block_breaker")); ModelBakery.registerItemVariants(Item.getItemFromBlock(MAMetaBlocks.block_breaker), new ResourceLocation ("ma:copper_block_breaker")); } public void postInit(FMLPostInitializationEvent postEvent) { super.postInit(postEvent); } } MAMetaBlocks: package com.MonstrousApple.mod.blocks; import com.MonstrousApple.mod.MAGlobal; import com.MonstrousApple.mod.handler.EnumHandler; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.item.Item; import net.minecraftforge.fml.common.registry.GameRegistry; public class MAMetaBlocks { public static Block block_breaker; public static void init() { block_breaker = new BlockBlockBreaker("block_breaker"); } public static void register() { GameRegistry.registerBlock(block_breaker, ItemBlockMeta.class, "block_breaker"); } public static void registerRenders() { for(int i = 0; i < EnumHandler.BlockBreakerTypes.values().length; i++) { registerRender(block_breaker, i, EnumHandler.BlockBreakerTypes.values()[i].getName() + "_block_breaker"); } } public static void registerBlock(Block block) { GameRegistry.registerBlock(block, block.getUnlocalizedName().substring(5)); System.out.println("Registered Block: " + block.getUnlocalizedName().substring(5)); } public static void registerRender(Block block, int meta, String fileName) { Item item = Item.getItemFromBlock(block); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, meta, new ModelResourceLocation(MAGlobal.MOD_ID + ":" + fileName, "inventory")); } }
  15. Anyone know what the error is? Because I have no actual errors showing but it crashes when I try to load the game up?
  16. Anyone know what the error is? Because I have no actual errors showing but it crashes when I try to load the game up?
  17. Well I thought I did... here's my class's: MAEnumHandler: package com.MonstrousApple.mod.handler; import net.minecraft.util.IStringSerializable; public class MAEnumHandler { public enum BlockBreakerTypes implements IStringSerializable { Wood(0, "Wood"), Stone(1, "Stone"), Iron(2, "Iron"), Gold(3, "Gold"), Diamond(4, "Diamond"), Copper(5, "Copper"); private int ID; private String name; private BlockBreakerTypes(int ID, String name) { this.ID = ID; this.name= name; } public String getName(){ return name; } public int getID() { return ID; } @Override public String toString() { return getName(); } } } MABlocks: package com.MonstrousApple.mod.blocks; import com.MonstrousApple.mod.blocks.crops.MABananaCropDrop; import com.MonstrousApple.mod.blocks.crops.MACherryCropDrop; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.world.IBlockAccess; import net.minecraftforge.fml.common.registry.GameRegistry; public class MABlocks { //Blocks public static Block CompressedStone; public static Block BlockBreaker; public static void initBlocks() { //Blocks; GameResistry.registerBlock (Name of Block = new MABlock("Name of Block", Material.rock, hardness, resistance), "Name of Block"); //Harvest Levels; 0 = Wooden/Gold Can Mine || 1 = Stone Can Mine || 2 = Iron Can Mine || 3 = Diamond Can Mine. GameRegistry.registerBlock(CompressedStone = new MABlock("CompressedStone", Material.rock, 3, 20), "CompressedStone"); CompressedStone.setHarvestLevel("pickaxe", 0); GameRegistry.registerBlock(BlockBreaker, MAMetaBlocks.class, "BlockBreaker"); } } MABlockBreaker: package com.MonstrousApple.mod.blocks; import java.util.List; import com.MonstrousApple.mod.MAGlobal; import com.MonstrousApple.mod.handler.MAEnumHandler; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.BlockPos; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; public class MABlockBreaker extends Block implements IMetaBlockName { public static final PropertyEnum TYPE = PropertyEnum.create("TYPE", MAEnumHandler.BlockBreakerTypes.class); public MABlockBreaker(String unlocalizedName) { super(Material.rock); this.setUnlocalizedName(unlocalizedName); this.setCreativeTab(MAGlobal.maCreativeTabBlocks); this.setDefaultState(this.blockState.getBaseState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Wood)); } @Override public void getSubBlocks(Item item, CreativeTabs tab, List<ItemStack> list) { list.add(new ItemStack(item, 1, 0)); list.add(new ItemStack(item, 1, 1)); list.add(new ItemStack(item, 1, 2)); list.add(new ItemStack(item, 1, 3)); list.add(new ItemStack(item, 1, 4)); list.add(new ItemStack(item, 1, 5)); } @Override protected BlockState createBlockState() { return new BlockState(this, new IProperty[] { TYPE }); } @Override public IBlockState getStateFromMeta(int meta) { if(meta == 0) { return this.getDefaultState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Wood); } if(meta == 1) { return this.getDefaultState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Stone); } if(meta == 2) { return this.getDefaultState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Iron); } if(meta == 3) { return this.getDefaultState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Gold); } if(meta == 4) { return this.getDefaultState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Diamond); } if(meta == 5) { return this.getDefaultState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Copper); } return this.getDefaultState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Wood); } @Override public int getMetaFromState(IBlockState state) { MAEnumHandler.BlockBreakerTypes type = (MAEnumHandler.BlockBreakerTypes) state.getValue(TYPE); return type.getID(); } @Override public int damageDropped(IBlockState state) { return this.getMetaFromState(state); } @Override public String getSpecialName(ItemStack stack) { if(stack.getItemDamage() == 0) { return "Wood"; } if(stack.getItemDamage() == 1) { return "Stone"; } if(stack.getItemDamage() == 2) { return "Iron"; } if(stack.getItemDamage() == 3) { return "Gold"; } if(stack.getItemDamage() == 4) { return "Diamond"; } if(stack.getItemDamage() == 5) { return "Copper"; } return "Wood"; } @Override public ItemStack getPickBlock(MovingObjectPosition target, World world, BlockPos pos, EntityPlayer player) { return new ItemStack(Item.getItemFromBlock(this), 1, this.getMetaFromState(world.getBlockState(pos))); } } IMetaBlockName: package com.MonstrousApple.mod.blocks; import net.minecraft.item.ItemStack; public interface IMetaBlockName { String getSpecialName(ItemStack stack); } MAMetaBlocks: package com.MonstrousApple.mod.blocks; import net.minecraft.block.Block; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; public class MAMetaBlocks extends ItemBlock { public MAMetaBlocks(Block block) { super(block); if(!(block instanceof IMetaBlockName)) { throw new IllegalArgumentException(String.format("The given Block %s is not an instance of IMetaBlockName", block.getUnlocalizedName())); } this.setMaxDamage(0); this.setHasSubtypes(true); } public int getMetaData(int damage) { return damage; } @Override public String getUnlocalizedName(ItemStack stack) { return super.getUnlocalizedName(stack) + "." + ((IMetaBlockName)this.block).getSpecialName(stack); } } MAMetaBlockRender: package com.MonstrousApple.mod.render; import com.MonstrousApple.mod.MAGlobal; import com.MonstrousApple.mod.blocks.MABlocks; import com.MonstrousApple.mod.handler.MAEnumHandler; import com.MonstrousApple.mod.ores.MAOres; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.item.Item; import net.minecraftforge.fml.common.registry.GameRegistry; public class MAMetablockRender { public static void registerBlockRender() { //Meta Blocks for(int i = 0; i < MAEnumHandler.BlockBreakerTypes.values().length; i++) { regBlock(BlockBreaker, i, MAEnumHandler.BlockBreakerTypes.values()[i].getName() + "BlockBreaker"); } } public static void regBlock(Block block, int meta, String fileName) { Item item = Item.getItemFromBlock(block); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, meta, new ModelResourceLocation(MAGlobal.MOD_ID + ":" + fileName, "inventory")); } }
  18. Well I thought I did... here's my class's: MAEnumHandler: package com.MonstrousApple.mod.handler; import net.minecraft.util.IStringSerializable; public class MAEnumHandler { public enum BlockBreakerTypes implements IStringSerializable { Wood(0, "Wood"), Stone(1, "Stone"), Iron(2, "Iron"), Gold(3, "Gold"), Diamond(4, "Diamond"), Copper(5, "Copper"); private int ID; private String name; private BlockBreakerTypes(int ID, String name) { this.ID = ID; this.name= name; } public String getName(){ return name; } public int getID() { return ID; } @Override public String toString() { return getName(); } } } MABlocks: package com.MonstrousApple.mod.blocks; import com.MonstrousApple.mod.blocks.crops.MABananaCropDrop; import com.MonstrousApple.mod.blocks.crops.MACherryCropDrop; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.world.IBlockAccess; import net.minecraftforge.fml.common.registry.GameRegistry; public class MABlocks { //Blocks public static Block CompressedStone; public static Block BlockBreaker; public static void initBlocks() { //Blocks; GameResistry.registerBlock (Name of Block = new MABlock("Name of Block", Material.rock, hardness, resistance), "Name of Block"); //Harvest Levels; 0 = Wooden/Gold Can Mine || 1 = Stone Can Mine || 2 = Iron Can Mine || 3 = Diamond Can Mine. GameRegistry.registerBlock(CompressedStone = new MABlock("CompressedStone", Material.rock, 3, 20), "CompressedStone"); CompressedStone.setHarvestLevel("pickaxe", 0); GameRegistry.registerBlock(BlockBreaker, MAMetaBlocks.class, "BlockBreaker"); } } MABlockBreaker: package com.MonstrousApple.mod.blocks; import java.util.List; import com.MonstrousApple.mod.MAGlobal; import com.MonstrousApple.mod.handler.MAEnumHandler; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.BlockPos; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; public class MABlockBreaker extends Block implements IMetaBlockName { public static final PropertyEnum TYPE = PropertyEnum.create("TYPE", MAEnumHandler.BlockBreakerTypes.class); public MABlockBreaker(String unlocalizedName) { super(Material.rock); this.setUnlocalizedName(unlocalizedName); this.setCreativeTab(MAGlobal.maCreativeTabBlocks); this.setDefaultState(this.blockState.getBaseState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Wood)); } @Override public void getSubBlocks(Item item, CreativeTabs tab, List<ItemStack> list) { list.add(new ItemStack(item, 1, 0)); list.add(new ItemStack(item, 1, 1)); list.add(new ItemStack(item, 1, 2)); list.add(new ItemStack(item, 1, 3)); list.add(new ItemStack(item, 1, 4)); list.add(new ItemStack(item, 1, 5)); } @Override protected BlockState createBlockState() { return new BlockState(this, new IProperty[] { TYPE }); } @Override public IBlockState getStateFromMeta(int meta) { if(meta == 0) { return this.getDefaultState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Wood); } if(meta == 1) { return this.getDefaultState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Stone); } if(meta == 2) { return this.getDefaultState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Iron); } if(meta == 3) { return this.getDefaultState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Gold); } if(meta == 4) { return this.getDefaultState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Diamond); } if(meta == 5) { return this.getDefaultState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Copper); } return this.getDefaultState().withProperty(TYPE, MAEnumHandler.BlockBreakerTypes.Wood); } @Override public int getMetaFromState(IBlockState state) { MAEnumHandler.BlockBreakerTypes type = (MAEnumHandler.BlockBreakerTypes) state.getValue(TYPE); return type.getID(); } @Override public int damageDropped(IBlockState state) { return this.getMetaFromState(state); } @Override public String getSpecialName(ItemStack stack) { if(stack.getItemDamage() == 0) { return "Wood"; } if(stack.getItemDamage() == 1) { return "Stone"; } if(stack.getItemDamage() == 2) { return "Iron"; } if(stack.getItemDamage() == 3) { return "Gold"; } if(stack.getItemDamage() == 4) { return "Diamond"; } if(stack.getItemDamage() == 5) { return "Copper"; } return "Wood"; } @Override public ItemStack getPickBlock(MovingObjectPosition target, World world, BlockPos pos, EntityPlayer player) { return new ItemStack(Item.getItemFromBlock(this), 1, this.getMetaFromState(world.getBlockState(pos))); } } IMetaBlockName: package com.MonstrousApple.mod.blocks; import net.minecraft.item.ItemStack; public interface IMetaBlockName { String getSpecialName(ItemStack stack); } MAMetaBlocks: package com.MonstrousApple.mod.blocks; import net.minecraft.block.Block; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; public class MAMetaBlocks extends ItemBlock { public MAMetaBlocks(Block block) { super(block); if(!(block instanceof IMetaBlockName)) { throw new IllegalArgumentException(String.format("The given Block %s is not an instance of IMetaBlockName", block.getUnlocalizedName())); } this.setMaxDamage(0); this.setHasSubtypes(true); } public int getMetaData(int damage) { return damage; } @Override public String getUnlocalizedName(ItemStack stack) { return super.getUnlocalizedName(stack) + "." + ((IMetaBlockName)this.block).getSpecialName(stack); } } MAMetaBlockRender: package com.MonstrousApple.mod.render; import com.MonstrousApple.mod.MAGlobal; import com.MonstrousApple.mod.blocks.MABlocks; import com.MonstrousApple.mod.handler.MAEnumHandler; import com.MonstrousApple.mod.ores.MAOres; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.item.Item; import net.minecraftforge.fml.common.registry.GameRegistry; public class MAMetablockRender { public static void registerBlockRender() { //Meta Blocks for(int i = 0; i < MAEnumHandler.BlockBreakerTypes.values().length; i++) { regBlock(BlockBreaker, i, MAEnumHandler.BlockBreakerTypes.values()[i].getName() + "BlockBreaker"); } } public static void regBlock(Block block, int meta, String fileName) { Item item = Item.getItemFromBlock(block); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, meta, new ModelResourceLocation(MAGlobal.MOD_ID + ":" + fileName, "inventory")); } }
  19. I get an error on BlockBreaker saying that "BlockBreaker cannot be resolved to a varieable", does anyone know how to fix this? package com.MonstrousApple.mod.render; import com.MonstrousApple.mod.MAGlobal; import com.MonstrousApple.mod.blocks.MABlocks; import com.MonstrousApple.mod.handler.MAEnumHandler; import com.MonstrousApple.mod.ores.MAOres; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.item.Item; import net.minecraftforge.fml.common.registry.GameRegistry; public class MAMetablockRender { public static void registerBlockRender() { //Meta Blocks for(int i = 0; i < MAEnumHandler.BlockBreakerTypes.values().length; i++) { regBlock(BlockBreaker, i, MAEnumHandler.BlockBreakerTypes.values()[i].getName() + "BlockBreaker"); } } public static void regBlock(Block block, int meta, String fileName) { Item item = Item.getItemFromBlock(block); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, meta, new ModelResourceLocation(MAGlobal.MOD_ID + ":" + fileName, "inventory")); } }
  20. I get an error on BlockBreaker saying that "BlockBreaker cannot be resolved to a varieable", does anyone know how to fix this? package com.MonstrousApple.mod.render; import com.MonstrousApple.mod.MAGlobal; import com.MonstrousApple.mod.blocks.MABlocks; import com.MonstrousApple.mod.handler.MAEnumHandler; import com.MonstrousApple.mod.ores.MAOres; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.item.Item; import net.minecraftforge.fml.common.registry.GameRegistry; public class MAMetablockRender { public static void registerBlockRender() { //Meta Blocks for(int i = 0; i < MAEnumHandler.BlockBreakerTypes.values().length; i++) { regBlock(BlockBreaker, i, MAEnumHandler.BlockBreakerTypes.values()[i].getName() + "BlockBreaker"); } } public static void regBlock(Block block, int meta, String fileName) { Item item = Item.getItemFromBlock(block); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, meta, new ModelResourceLocation(MAGlobal.MOD_ID + ":" + fileName, "inventory")); } }
  21. I did post my code on post #9 I'll post it again here: package com.MonstrousApple.mod.gemstones; import com.MonstrousApple.mod.MAGlobal; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.init.Items; import net.minecraft.item.EnumAction; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.stats.StatList; import net.minecraft.world.World; public class MAVitalityGemstone extends Item { public MAVitalityGemstone(String unlocalizedName) { super(); this.setUnlocalizedName(unlocalizedName); this.setCreativeTab(MAGlobal.maCreativeTabGemstones); this.setMaxStackSize(1); } public void onUpdate(ItemStack itemstack, World world, Entity entity, int i, boolean flag) { if (entity instanceof EntityPlayer) { EntityPlayer Player = (EntityPlayer) entity; if(Player.getCurrentEquippedItem() != null && Player.getCurrentEquippedItem().getItem() instanceof MAVitalityGemstone) { Player.addPotionEffect(new PotionEffect(Potion.regeneration.id, 50, 1 - 1)); } else { Player.removePotionEffect(i); } } } } }
  22. I did post my code on post #9 I'll post it again here: package com.MonstrousApple.mod.gemstones; import com.MonstrousApple.mod.MAGlobal; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.init.Items; import net.minecraft.item.EnumAction; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.stats.StatList; import net.minecraft.world.World; public class MAVitalityGemstone extends Item { public MAVitalityGemstone(String unlocalizedName) { super(); this.setUnlocalizedName(unlocalizedName); this.setCreativeTab(MAGlobal.maCreativeTabGemstones); this.setMaxStackSize(1); } public void onUpdate(ItemStack itemstack, World world, Entity entity, int i, boolean flag) { if (entity instanceof EntityPlayer) { EntityPlayer Player = (EntityPlayer) entity; if(Player.getCurrentEquippedItem() != null && Player.getCurrentEquippedItem().getItem() instanceof MAVitalityGemstone) { Player.addPotionEffect(new PotionEffect(Potion.regeneration.id, 50, 1 - 1)); } else { Player.removePotionEffect(i); } } } } }
  23. Removed my code and tried yours, doesn't work, says I get an error at ".addPotionEffect" saying that "The method addPotionEffect(PotionEffect) is undefined for the type player"?
  24. Removed my code and tried yours, doesn't work, says I get an error at ".addPotionEffect" saying that "The method addPotionEffect(PotionEffect) is undefined for the type player"?
  25. Okay I'll say what I need to do at this moment, I need it so that when I am not holding the item, the potion effect goes completely, even if it starts at 4 seconds, ends at 0 seconds, and currently is on 2 seconds duration left, it will disappear. I also need it so that when holding the item the duration of the potion effect still ticks even while holding the item, so that regeneration will work, so for example I hold the gem it gives 4 seconds of regeneration, it ticks down to 0 and then refreshes to 4 again, but of course if the item is not held at any point, the regeneration effect completely goes even if it's not reached 0 seconds yet. This is what my code looks like at the moment: package com.MonstrousApple.mod.gemstones; import com.MonstrousApple.mod.MAGlobal; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.init.Items; import net.minecraft.item.EnumAction; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.stats.StatList; import net.minecraft.world.World; public class MAVitalityGemstone extends Item { public MAVitalityGemstone(String unlocalizedName) { super(); this.setUnlocalizedName(unlocalizedName); this.setCreativeTab(MAGlobal.maCreativeTabGemstones); this.setMaxStackSize(1); } public void onUpdate(ItemStack itemstack, World world, Entity entity, int i, boolean flag) { if (entity instanceof EntityPlayer) { EntityPlayer Player = (EntityPlayer) entity; if(Player.getCurrentEquippedItem() != null && Player.getCurrentEquippedItem().getItem() instanceof MAVitalityGemstone) { Player.addPotionEffect(new PotionEffect(Potion.regeneration.id, 50, 1 - 1)); } else { Player.removePotionEffect(i); } } } } }
×
×
  • Create New...

Important Information

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