Main.java
_________________________
InitItems.java
_________________________
ItemTestIngot.java
package com.taalkisif.pd.items;
import com.taalkisif.pd.init.InitItems;
import com.taalkisif.pd.main.Main;
import com.taalkisif.pd.utils.interfaces.IHasModel;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
public class ItemTestIngot extends Item implements IHasModel
{
public ItemTestIngot(String name)
{
setRegistryName(name);
setUnlocalizedName(name);
setCreativeTab(CreativeTabs.MATERIALS);
setMaxStackSize(10);
InitItems.ITEMS.add(this);
}
@Override
public void registerModels()
{
Main.proxy.registerItemRenderer(this, 0, "inventory");
}
}
___________________________________________
ClientProxy.java
_____________________
CommonProxy.java
____________
RegisterHandler.java
package com.taalkisif.pd.utils.hadlers;
import com.taalkisif.pd.init.InitItems;
import com.taalkisif.pd.utils.interfaces.IHasModel;
import net.minecraft.item.Item;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
@EventBusSubscriber
public class RegisterHandler
{
@SubscribeEvent
public static void onItemRegister(RegistryEvent.Register<Item> event)
{
event.getRegistry().registerAll(InitItems.ITEMS.toArray(new Item[0]));
}
@SubscribeEvent
public static void onModelRegister(ModelRegistryEvent event)
{
for(Item item : InitItems.ITEMS)
{
if(item instanceof IHasModel)
{
((IHasModel)item).registerModels();
}
}
}
}
______________________
IHasModel.java
____________________
______________________________
test_ingot.json
Java:
package com.taalkisif.pd.main;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
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;
import com.taalkisif.pd.proxy.CommonProxy;
import com.taalkisif.pd.reference.*;
@Mod (modid = Reference.MODID, name = Reference.NAME, version = Reference.VERSION,
acceptedMinecraftVersions = Reference.ACCEPRED_MINECRAFT_VERSION)
public class Main {
@Instance
public static Main instance;
@SidedProxy(clientSide = Reference.CLIENT, serverSide = Reference.COMMON)
public static CommonProxy proxy;
@EventHandler
public static void preInit(FMLPreInitializationEvent event) {};
@EventHandler
public static void preInit(FMLInitializationEvent event) {};
@EventHandler
public static void postInit(FMLPostInitializationEvent event) {};
}
_________________________
InitItems.java
Java:
package com.taalkisif.pd.init;
import java.util.ArrayList;
import java.util.List;
import com.taalkisif.pd.items.ItemTestIngot;
import net.minecraft.item.Item;
public class InitItems
{
public static final List<Item> ITEMS = new ArrayList<Item>();
//Items
public static final Item TEST_INGOT = new ItemTestIngot("test_ingot");
}
ItemTestIngot.java
package com.taalkisif.pd.items;
import com.taalkisif.pd.init.InitItems;
import com.taalkisif.pd.main.Main;
import com.taalkisif.pd.utils.interfaces.IHasModel;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
public class ItemTestIngot extends Item implements IHasModel
{
public ItemTestIngot(String name)
{
setRegistryName(name);
setUnlocalizedName(name);
setCreativeTab(CreativeTabs.MATERIALS);
setMaxStackSize(10);
InitItems.ITEMS.add(this);
}
@Override
public void registerModels()
{
Main.proxy.registerItemRenderer(this, 0, "inventory");
}
}
___________________________________________
ClientProxy.java
Java:
package com.taalkisif.pd.proxy;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.client.model.ModelLoader;
public class ClientProxy extends CommonProxy {
public void registrerItemRenderer(Item item, int meta, String id)
{
ModelLoader.setCustomModelResourceLocation(item, meta,new ModelResourceLocation(item.getRegistryName(), id));
}
}
CommonProxy.java
Java:
package com.taalkisif.pd.proxy;
import net.minecraft.item.Item;
public class CommonProxy
{
public void registerItemRenderer(Item item, int meta, String id) {}
}
RegisterHandler.java
package com.taalkisif.pd.utils.hadlers;
import com.taalkisif.pd.init.InitItems;
import com.taalkisif.pd.utils.interfaces.IHasModel;
import net.minecraft.item.Item;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
@EventBusSubscriber
public class RegisterHandler
{
@SubscribeEvent
public static void onItemRegister(RegistryEvent.Register<Item> event)
{
event.getRegistry().registerAll(InitItems.ITEMS.toArray(new Item[0]));
}
@SubscribeEvent
public static void onModelRegister(ModelRegistryEvent event)
{
for(Item item : InitItems.ITEMS)
{
if(item instanceof IHasModel)
{
((IHasModel)item).registerModels();
}
}
}
}
______________________
IHasModel.java
Java:
package com.taalkisif.pd.utils.interfaces;
public interface IHasModel
{
public void registerModels();
}
______________________________
test_ingot.json
Java:
{
"parent": "item/generated",
"textures": {
"layer0": "pd:items/test_ingot"
}
}