Я создаю мод для Minecraft и пытаюсь зарегистрировать новый предмет, но это не так (или, по крайней мере, кажется, что нет). Что мне нужно исправить в коде?
ПРИМЕЧАНИЕ. Полный код можно найти по адресу https://github.com/LoboMetalurgico/allonsy_mod/
Класс ModItems
public class ModItems {
public static final List<Item> ITEMS = new ArrayList<Item>();
public static final Item ruby = new ItemBase("ruby");
}
Интерфейс IHasModel
public interface IHasModel {
public void registerModels();
}
Класс CommomProxy
public class CommomProxy {
public void registerItemRenderer(Item item, int meta, String id){
}
}
Класс ClientProxy
public class ClientProxy extends CommomProxy {
public void registerItemRenderer(Item item, int meta, String id){
ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(item.getRegistryName(), id));
}
}
Класс ItemBase
public class ItemBase extends Item implements IHasModel {
public ItemBase(String name){
setUnlocalizedName(name);
setRegistryName(name);
setCreativeTab(CreativeTabs.MATERIALS);
ModItems.ITEMS.add(this);
}
@Override
public void registerModels() {
AllonsyMod.proxy.registerItemRenderer(this, 0, "inventory");
}
}
Класс RegistryHandler
@EventBusSubscriber
public class RegistryHandler {
@SubscribeEvent
public static void onItemRegister(RegistryEvent.Register<Item> 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();
}
}
}
}