package com.Joy187.newmod.util; //这个是你的包名,和我的不一样
public interface IHasModel {
public void registerModels();
}
package com.Joy187.newmod.items;
import com.Joy187.newmod.Main;
import com.Joy187.newmod.init.ModItems;
import com.Joy187.newmod.util.IHasModel;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
public class ItemBase extends Item implements IHasModel{
//物品名称 放置的物品栏
public ItemBase(String name,CreativeTabs tab) {
setUnlocalizedName(name);
setRegistryName(name);
setCreativeTab(tab);
ModItems.ITEMS.add(this);
}
@Override
public void registerModels() {
Main.proxy.registerItemRenderer(this, 0, "inventory");
}
}
package com.Joy187.newmod.proxy;
import net.minecraft.item.Item;
public class CommonProxy {
public void registerItemRenderer(Item item, int meta,String id) {}
}
package com.Joy187.newmod.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 registerItemRenderer(Item item, int meta,String id) {
//对你自定义的物品进行定位
ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(item.getRegistryName(), id));
}
}
package com.Joy187.newmod.util.handlers;
import com.Joy187.newmod.init.ModItems;
import com.Joy187.newmod.util.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 RegistryHandler {
@SubscribeEvent
public static void onItemRegister(RegistryEvent.Register- event) {
event.getRegistry().registerAll(ModItems.ITEMS.toArray(new Item[0]));
}
@SubscribeEvent
public static void onModelRegister(ModelRegistryEvent event) {
for(Item item: ModItems.ITEMS){
if(item instanceof IHasModel) {
((IHasModel)item).registerModels();
}
}
}
}
package com.Joy187.newmod.init;
import java.util.ArrayList;
import java.util.List;
import com.Joy187.newmod.items.ItemBase;
import net.minecraft.item.Item;
public class ModItems {
public static final List- ITEMS = new ArrayList
- ();
//要全部大写,可以加下划线 //你的物品名称 //放在哪个物品栏
public static final Item LABOR_SHOVEL = new ItemBase("labor_shovel", Main.ITEM_TAB);
//你可以往下续写...
}
//item
item.labor_shovel.name=Labor Shovel
//这个应于你的ModItems中的物品名称保持一致 ,等号后面的是你在游戏中的真实方块名称
{
"parent": "item/generated",
"textures": {
"layer0": "joymod:items/labor_shovel"
//你的modid:items/你的物品名称(和ModItems中保持一致)
}
}
ItemTab.java
public class ItemTab extends CreativeTabs{
public ItemTab( ) {
super("item_tab" );
}
@Override
public ItemStack getTabIconItem() {
//这里的参数是你的某一个物品,到时候物品栏会显示该物品的贴图
return new ItemStack(ModItems.LEI);
}
}
Main.java
public class Main
{
public static CreativeTabs ITEM_TAB = new ItemTab( );
//你可以添加更多的个人物品栏
//public static CreativeTabs BLOCK_TAB = new BlockTab( );
}
itemGroup.item_tab=RE8 Item