Ok, here is my code so far:
Order, Main Class, Reference, RegistryHandler, ItemInit, BlockInit, ClientProxy, CommonProxy, CustomBlock, CustomIngot, CustomOre
package ace.madmanwithabox;
import ace.madmanwithabox.proxy.CommonProxy;
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 = Reference.MODID, name = Reference.NAME, version = Reference.VERSION)
public class MadmanWithABox
{
@SidedProxy(clientSide = Reference.CLIENTPROXY, serverSide = Reference.COMMONPROXY)
public static CommonProxy proxy;
@EventHandler
public static void preInit(FMLPreInitializationEvent event)
{
proxy.preInit(event);
}
@EventHandler
public static void init(FMLInitializationEvent event)
{
proxy.init(event);
}
@EventHandler
public static void postInit(FMLPostInitializationEvent event)
{
proxy.postInit(event);
}
}
package ace.madmanwithabox;
public class Reference
{
public static final String MODID = "mwab";
public static final String NAME = "Madman With A Box";
public static final String VERSION = "0.1 - MC 1.12";
public static final String CLIENTPROXY = "ace.madmanwithabox.proxy.ClientProxy";
public static final String COMMONPROXY = "ace.madmanwithabox.proxy.CommonProxy";
}
package ace.madmanwithabox.handlers;
import ace.madmanwithabox.init.BlockInit;
import ace.madmanwithabox.init.ItemInit;
public class RegistryHandler
{
public static void Client()
{
ItemInit.register();
BlockInit.registerRenders();
}
public static void Common()
{
ItemInit.init();
BlockInit.init();
BlockInit.register();
}
}
package ace.madmanwithabox.init;
import ace.madmanwithabox.Reference;
import ace.madmanwithabox.init.items.CustomIngot;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.fml.common.registry.ForgeRegistries;
public class ItemInit
{
public static Item steel_ingot;
public static void init()
{
steel_ingot = new CustomIngot("steel_ingot");
}
public static void register()
{
registerItem(steel_ingot);
}
public static void registerItem(Item item)
{
ForgeRegistries.ITEMS.register(item);
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0,
new ModelResourceLocation(Reference.MODID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
}
}
package ace.madmanwithabox.init;
import ace.madmanwithabox.Reference;
import ace.madmanwithabox.init.blocks.CustomOre;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraftforge.fml.common.registry.ForgeRegistries;
public class BlockInit
{
public static Block steel_ore;
public static void init()
{
steel_ore = new CustomOre("steel_ore", 2.0F, 4.0F, 2);
}
public static void register()
{
registerBlock(steel_ore);
}
public static void registerBlock(Block block)
{
ForgeRegistries.BLOCKS.register(block);
block.setCreativeTab(CreativeTabs.BUILDING_BLOCKS);
ItemBlock item = new ItemBlock(block);
item.setRegistryName(block.getRegistryName());
ForgeRegistries.ITEMS.register(item);
}
public static void registerRenders()
{
registerRender(steel_ore);
}
public static void registerRender(Block block)
{
Minecraft.getMinecraft().getRenderItem().getItemModelMesher()
.register(Item.getItemFromBlock(block), 0, new ModelResourceLocation(Reference.MODID + ":" +
block.getUnlocalizedName().substring(5)));
}
}
package ace.madmanwithabox.proxy;
import ace.madmanwithabox.handlers.RegistryHandler;
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 event)
{
super.preInit(event);
}
public void init(FMLInitializationEvent event)
{
super.init(event);
RegistryHandler.Client();
}
public void postInit(FMLPostInitializationEvent event)
{
super.postInit(event);
}
}
package ace.madmanwithabox.proxy;
import ace.madmanwithabox.handlers.RegistryHandler;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
public class CommonProxy
{
public void preInit(FMLPreInitializationEvent event)
{
RegistryHandler.Common();
}
public void init(FMLInitializationEvent event)
{
}
public void postInit(FMLPostInitializationEvent event)
{
}
}
package ace.madmanwithabox.init.blocks;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
public class CustomBlock extends Block
{
public CustomBlock(String name, float hardness, float resistance)
{
super(Material.ROCK);
setUnlocalizedName(name);
setRegistryName(name);
setHardness(hardness);
setResistance(resistance);
}
}
package ace.madmanwithabox.init.items;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
public class CustomIngot extends Item
{
public CustomIngot(String name)
{
setUnlocalizedName(name);
setRegistryName(name);
setCreativeTab(CreativeTabs.MISC);
}
}
v
package ace.madmanwithabox.init.blocks;
public class CustomOre extends CustomBlock
{
public CustomOre(String name, float hardness, float resistance, int harvestLevel)
{
super(name, hardness, resistance);
setHarvestLevel("pickaxe", harvestLevel);
}
}
I hope you can make sense of this!!
Thanks!