Метахавка на коленке.

Сообщения
4,659
Лучшие ответы
44
Реакции
598
Версия Minecraft
1.12.2
Сидел я в общем, и захотелось прям чет код пописать. Захотелось запилить предметы метадатой. Сделал я значит класс с массивом имен, сделал класс регистрации, но почему то крашит. Последнее, на что указал мне умирающий фордж, это строчка с ItemReg.register(); в проксиклиенте.
Это класс регистрации
Java:
public static String[] names = new String[] {"raspberry","strawberry"};
public static int numbers = names.length;
public static Item metafood = new MetaFoods(names, numbers);
public static void register() {
        registerItem(metafood);
    }
    public static void registerRender() {
        registerRenderItem(metafood);
    }
    private static void registerItem(Item item) {
        ForgeRegistries.ITEMS.register(item);
    }
    private static void registerRenderItem(Item item)
    {
        Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory"));
    }
А это класс метахавки
Код:
public class MetaFoods extends Item{
    public MetaFoods(String[] name,int number) {
        this.setHasSubtypes(true);
        this.setRegistryName(name[number]);
        this.setCreativeTab(MainClass.tabMain);
        this.setUnlocalizedName(name[number]);
    }
    public boolean getHasSubtypes()
    {
        return this.hasSubtypes;
    }
   
   
}
Чет не пойму, где ошибка то?
Субтипы включил даже :\
 
Сообщения
2,773
Лучшие ответы
172
Реакции
449
Переопределить getUnlocalizedName, getSubItems еще вроде бы нужно.
 
Сообщения
4,659
Лучшие ответы
44
Реакции
598
Переопределил, ничего не изменилось. Что то при регистрации еще надо делать, я не помню только что...
 

Ivasik

Porting GrandBombaster
Администратор
Сообщения
2,854
Лучшие ответы
77
Реакции
308
Переопределил, ничего не изменилось. Что то при регистрации еще надо делать, я не помню только что...
getSubItems нужен. В лист добавляешь стак, в стаке указываешь метадату и все.
 
Сообщения
4,659
Лучшие ответы
44
Реакции
598
getSubItems нужен. В лист добавляешь стак, в стаке указываешь метадату и все.
Так, да?

Java:
public class MetaFoods extends Item{
    public MetaFoods(String[] name,int number) {
        this.setHasSubtypes(true);
        this.setRegistryName(name[number]);
        this.setCreativeTab(MainClass.tabMain);
        this.setUnlocalizedName(name[number]);
        
    }
    public boolean getHasSubtypes()
    {
        return this.hasSubtypes;
    }
    public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items)
    {
        for(int i = 0; i < 3; i++)
            items.add(new ItemStack(this, i));
    }

    
}
 
Сообщения
1,380
Лучшие ответы
57
Реакции
391
второй аргумент это ж кол-во, не?
 
Сообщения
4,659
Лучшие ответы
44
Реакции
598
Сообщения
2,773
Лучшие ответы
172
Реакции
449
new ItemStack(this, 1, i);
?
 
Сообщения
4,659
Лучшие ответы
44
Реакции
598
Ага... Теперь бы как нибудь блоки похожим образом можно делать, не знаете?
 
Сообщения
2,773
Лучшие ответы
172
Реакции
449
Переопределить это же, но у ItemBlock, и при реге применить блоку этот ItemBlock.
 
Сообщения
4,659
Лучшие ответы
44
Реакции
598
Сообщения
2,773
Лучшие ответы
172
Реакции
449
Должно работать.
 
Сверху