[1.9.4]Использование registerRenders.

667
7
2
После перехода на новую версию я столкнулся первое с чем это json. Со вторым я столкнулся когда стал смотреть другие моды, там я нашёл две новые папки.
  • models
  • blockstates
Как я предполагаю первая хранит json с путём до текстуры/модель, а во второй находятся json которые указывают к какому блоку/предмету и др. применять json из первой папки. Либо это не так, или я уже совсем накосячил с json'нами.
 

Icosider

Kotliner
Администратор
3,600
99
663
Объясняю, blockstates это то как блок будет выглядеть с разных сторон или при соединении к нему похожего блока. В models хранятся модели блоков и предметов, а именно сама кастомная модель, позиция и в случае с блоками частицы, которые будут исходить при ломании блока. Так же модели блоков зависят от blockstates как и модели брони. Ну а чтобы делать эти самые модели, нужно иметь одну их этих программ: BDCraft Cubik3D или MrCrayfish Model Creator, а чтобы сделать blockstates нужно уже ручками прописывать путь к модели, для разносторонних блоков смотри blockstates ванильного майна.
 
667
7
2
ModItems
Код:
public class ModItems {

    public static Item itemThinSlats = new ItemThinSlats();

    public static void init() {
        GameRegistry.register(itemThinSlats);
    }
    public static void registerRenders() {
        registerRender(itemThinSlats);
    }

    private static void registerRender(Item item) {
        Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation("DecorativeExpansion:itemThinSlats"));
    }
}
Класс с предметом
Код:
public class ItemThinSlats extends Item {
    public ItemThinSlats() {
        setRegistryName("ModItems.register.itemThinSlats");
        setCreativeTab(DecorativeExpansion.DE_tabBlocks);
    }
}
JSON
Код:
{
  "parent": "item/generated",
  "textures": {
    "layer0": "DecorativeExpansion:items/wd"
  }
}

CommonProxy

Код:
public class CommonProxy {

    public void preInit() {
        ModItems.registerRenders();
    }
}
Мне кажется что, что то не так с registerRender.
 

Icosider

Kotliner
Администратор
3,600
99
663
virysD написал(а):
ModItems
Код:
public class ModItems {

    public static Item itemThinSlats = new ItemThinSlats();

    public static void init() {
        GameRegistry.register(itemThinSlats);
    }
    public static void registerRenders() {
        registerRender(itemThinSlats);
    }

    private static void registerRender(Item item) {
        Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation("DecorativeExpansion:itemThinSlats"));
    }
}
Класс с предметом
Код:
public class ItemThinSlats extends Item {
    public ItemThinSlats() {
        setRegistryName("ModItems.register.itemThinSlats");
        setCreativeTab(DecorativeExpansion.DE_tabBlocks);
    }
}
JSON
Код:
{
  "parent": "item/generated",
  "textures": {
    "layer0": "DecorativeExpansion:items/wd"
  }
}

CommonProxy

Код:
public class CommonProxy {

    public void preInit() {
        ModItems.registerRenders();
    }
}
Мне кажется что, что то не так с registerRender.
Код:
    public static void registerItem(Item item, String itemName)
    {
        GameRegistry.registerItem(item, itemName);
        Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation("MODID:" + itemName, "inventory"));
    }
И использовать:
Код:
public static void init()
{
   registerItem(Apple, "apple");
}
 
667
7
2
Всё еще текстуры нет, GameRegistry.registerItem убрали в 1.9, да и он тут не причём. Пойду дальше с json'ом разбираться.
 

Icosider

Kotliner
Администратор
3,600
99
663
virysD написал(а):
Всё еще текстуры нет, GameRegistry.registerItem убрали в 1.9, да и он тут не причём. Пойду дальше с json'ом разбираться.
Код:
{
    "parent": "builtin/generated",
    "textures": {
        "layer0": "modId:items/food/Apple"
    },
    "display": {
        "thirdperson": {
            "rotation": [ -90, 0, 0 ],
            "translation": [ 0, 1, -3 ],
            "scale": [ 0.55, 0.55, 0.55 ]
        },
        "firstperson": {
            "rotation": [ 0, -135, 25 ],
            "translation": [ 0, 4, 2 ],
            "scale": [ 1.7, 1.7, 1.7 ]
        }
    }
}
Уточняй в следующий раз, что тебе нужно, а не тупо код прикрепляй и мол сами думайте...
 
667
7
2
Увы не помогло, текстуры всё еще нет:(. Как я предполагаю это указывает путь к json файлу в паке models:
Код:
private static void registerRender(Item item) {
    Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation("DecorativeExpansion:" + itemThinSlats, "inventory"));
}


Но вот почему то у каждого это по разному, registerItemModel, registerRender...
 

Icosider

Kotliner
Администратор
3,600
99
663
virysD написал(а):
Увы не помогло, текстуры всё еще нет:(. Как я предполагаю это указывает путь к json файлу в паке models:
Код:
private static void registerRender(Item item) {
    Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation("DecorativeExpansion:" + itemThinSlats, "inventory"));
}


Но вот почему то у каждого это по разному, registerItemModel, registerRender...
Можно называть как угодно, главное чтобы самому понятно было. А где ты передаёшь itemThinSlats? Пропиши "String itemName"
Код:
public static void registerRender(Item item, String itemName) {
    GameRegistry.register(item, itemName);
    Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation("decorativeexpansion:" + itemName, "inventory"));
}
И дальше уже registerRender(Apple, "apple");. Этот код у тебя должен работать. И ещё такой момент, MODID ВСЕГДА в нижнем регистре пишется! Для удобства лучше сокращай modid.
 
667
7
2
Не, не чего не изменилось. Точно рендер нужно загружать в CommonProxy? Просто когда я его пробую поместить в клиентский прокси, происходит краш.
 

Icosider

Kotliner
Администратор
3,600
99
663
virysD написал(а):
Не, не чего не изменилось. Точно рендер нужно загружать в CommonProxy? Просто когда я его пробую поместить в клиентский прокси, происходит краш.
Эм, вообще то CommonProxy это для сервера. Кидай сюда краш.
 
667
7
2
Уже сделал, всё работает. 
P.s Спасибо!
[merge_posts_bbcode]Добавлено: 25.07.2016 19:48:01[/merge_posts_bbcode]

Можно закрывать.
 
Сверху