С Proxy мы разобрались, с главным файлом тоже. Но когда всё-таки мы будем добавлять что-то визуальное в игру? Прямо сейчас!
Чтобы создавать предметы, создадим новый класс Items в директории /ник создававшего\./название мода\.items.
Делаем файл финальным[final], чтобы его не могли сделать подклассом. Теперь делаем метод "createItems()" и делаем его статичным[static] и публичным[public]. Класс теперь выглядет примерно так:
public final class Items {
public static void createItems() {
}
}
Создаём объект вот так: public static Item item; пишем это между public static void createItems() и public final class Items.Нажимаем Ctrl+Shift+O и импортируем net.minecraft.item.Item.
Теперь заходим в CommonProxy и в preInit вписываем Items.createItems();
Создаём сам предмет: в папке items создаём ещё одну папку item, а в ней класс ItemNew.
Потом пытаемся создать что-то похожее:
import net.minecraft.item.Item;
public class ItemNew extends Item{
public ItemNew(String unlocalizedName) {
super();
this.setUnlocalizedName(unlocalizedName);
}
}
Это класс с названием ItemNew который является подклассом класса Item.
this.setUnlocalizedName(unlocalizedName); - даёт "название" предмету.
Теперь в нашем классе всех предметов[Items] пишем:
GameRegistry.registerItem(item = new ItemNew("new_item"), "new_item");
Это регистрирует наш предмет в игре. item - тот самый объект который мы создали вначале, ItemNew - название класса, new_item - название блока, текстура|модель.
Далее создаём регистратор моделей. Путь к нему вот такой - /никнейм\./мод\.client.render.items. Создаём класс ItemRenderRegister и пишем примерно такой код:
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
//2 импорта от итема и главного файла.
public final class ItemRenderRegister {
public static void registerItemRenderer() {
reg(Items.copperIngot);
}
public static String modid = /главный файл\.modid;
public static void reg(Item item) {
Minecraft.getMinecraft().getRenderItem().getItemModelMesher()
.register(item, 0, new ModelResourceLocation(modid + ":" + item.getUnlocalizedName().substring(5),"inventory"));
}
}
Всё! Предмет создан, осталось только сделать для него модель и текстуру. Создаём в src/main/resources папку assets, в ней папку с названием от modid(Обязательно маленькими буквами!) там папки models и textures. В textures создаём новую, с названием items и кидаем туда файл new_item.png. В models создаём папку item, а в ней файл new_item.json где мы пишем вот это:
{
"parent": "item/generated",
"textures": {
"layer0":"/modid\:items/new_item"
}
}
Всё, предмет должен быть с текстурой и названием(довольно странным, про локализацию в отдельном уроке).
Чтобы дать себе предмет, вводим команду /give @a /modid\:[tab]
Вам довольно долго писал CheshirX, извините за некоторые непонятицы! Если что-то осталось неясным спрашивайте в комментариях!