Posted January 26, 20169 yr Hello everyone! Started learning Java and coding Mod, and I faced this problem. So, this is my Pig Ore class (dont ask ) package com.shag.orebosses.init; import java.util.Random; import com.shag.orebosses.Info; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.toposort.TopologicalSort; public class Pig_Ore extends Block{ public Pig_Ore(Material material) { super(material); } public static Block pig_ore; public static void init() { pig_ore = new Block(Material.rock).setUnlocalizedName("pig_ore"); } public static void register() { GameRegistry.registerBlock(pig_ore, pig_ore.getUnlocalizedName().substring(5)); } public static void registerRenders(){ registerRender(pig_ore); } public static void registerRender(Block block){ Item item = Item.getItemFromBlock(block); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item,0, new ModelResourceLocation(Info.id + ":" + item.getUnlocalizedName().substring(5), "inventory")); } /** * Returns the quantity of items to drop on block destruction. */ public int quantityDropped(Random random) { return 1; } /** * Get the Item that this Block should drop when harvested. */ public Item getItemDropped(IBlockState state, Random rand, int fortune) { return Items.diamond; } } These lines should set the block's drop: public int quantityDropped(Random random) { return 1; } /** * Get the Item that this Block should drop when harvested. */ public Item getItemDropped(IBlockState state, Random rand, int fortune) { return Items.diamond; } } But, they dont! This is my main class: package com.shag.orebosses; import com.shag.orebosses.init.Pig_Ore; import com.shag.orebosses.proxy.CommonProxy; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; @Mod (modid = Info.id, name = Info.name, version = Info.version) public class MainClass { @SidedProxy (clientSide = Info.CLIENT_PROXY_CLASS, serverSide = Info.COMMON_PROXY_CLASS) public static CommonProxy proxy; @EventHandler public void preLoad(FMLPreInitializationEvent e) { Pig_Ore.init(); Pig_Ore.register(); Pig_Ore.pig_ore.setHardness(5F); Pig_Ore.pig_ore.setHarvestLevel("pickaxe", 1); } @EventHandler public void load(FMLInitializationEvent e) { proxy.registerRenders(); } @EventHandler public void postLoad(FMLPostInitializationEvent e) { } } Thanks! ~shag
January 26, 20169 yr Author You are never instantiating your Pig_Ore class, you are just instantiating the plain Block class, which of course does not have any drops. Ok, I get it. But how? I cant understand where should I write it
January 26, 20169 yr Author Do you know what instantiate means? If not: Learn Java. If yes: There is you answer. So, yeh, I know what that is. But I dont understand how can I use it in this case. Can u please help me? I would highly appreciate it!
January 26, 20169 yr Author I'll let an image speak: Thanks so much! I am sorry for my stupidity. Gotta go learn Java. Thank you again <3
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.