Перейти к содержимому
  • записи
    3
  • комментариев
    5
  • просмотров
    118

Крафт OCTechnics. Часть 3 - назад в 1.7.10

ProgramCrafter

82 просмотра

Портирование мода с 1.14 на 1.7.10 версию оказалось настоящим эпическим сражением, продлившимся целый день. Сейчас я опишу, как мне удалось в нём победить.

 

Половину дня я пытался понять, почему один мой Gradle (для Minecraft 1.7.10) не может определить версию Java по строке «12.0.1», а другой (для 1.14) заявляет, что надо указать версию плагина «forge». Ключом к решению оказалось использование OpenJDK 10 и обновление Gradle до 4.1 версии.

 

На этом проблемы не закончились. Gradle стал скачивать нужные файлы, но не смог скачать их все. Некоторые файлы (такие, как twitch-5.16.jar) отсутствуют на двух сайтах-источниках (minecraftforge.net и ещё один), а с официального сайта Minecraft Java скачать файлы не может, так как там есть проблема с сертификатом. Добавление корневого сертификата с minecraft.net в доверенные (тут как раз пригодилось то, что я скачал дополнительную Java) ничего не дало.

Я скачал все недостающие файлы через браузер, и тут у меня возникла проблема: а в какую папку их надо положить? Не считать ведь хеш-суммы каждого файла и не раскидывать по отдельным папкам руками?

Решение оказалось очень простым: если Gradle стучится и проверяет, нет ли файла на files.minecraftforge.net, то этот запрос можно перехватить и направить на локальный сервер, где файл уже есть. Как это можно сделать? Правильно, с помощью файла hosts. Тогда я прописал перенаправление с files.minecraftforge.net на 127.0.0.1, поднял локальный сервер и положил туда все нужные файлы. Запустил Gradle - ура, все файлы скачались! Сервер можно выключать.

 

Дальше осталось совсем немного: посмотреть в исходники каких-нибудь модов под 1.7.10 и разобраться, как они работают. Поменять в своём коде пришлось (почти) только основной класс. Также изменился файл локализации.

 

В каком виде мод работает (OCTechnics.java):

Скрытый текст

 

package org.octechnics.octechnics;

 

import cpw.mods.fml.common.Mod;

import cpw.mods.fml.common.Mod.EventHandler;

import cpw.mods.fml.common.event.FMLPreInitializationEvent;

 

import cpw.mods.fml.common.registry.GameRegistry;

 

import net.minecraft.block.Block;

import net.minecraft.item.Item;

import net.minecraft.item.ItemBlock;

 

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

 

@Mod( modid = "octechnics", version = "1.0" )

public class OCTechnics {

    public static final Block BASE_FACT = new BasicFactoryBlock("octechnics:basic_factory_block");

    private static Logger logger;

   

    public OCTechnics() {

        logger = LogManager.getLogger();

        logger.info("octechnics - register on EVENT_BUS");

    }

   

    @EventHandler

    public void preInit(FMLPreInitializationEvent evt) {

        logger.info("octechnics - got FMLPreInitializationEvent");

        GameRegistry.registerBlock(BASE_FACT, "basic_factory_block");

    }

}

 

 

Файл ./common/blocks/BasicFactoryBlock.java:

Скрытый текст

 

package org.octechnics.octechnics;

 

import net.minecraft.block.Block;

import net.minecraft.block.material.Material;

import net.minecraft.creativetab.CreativeTabs;

import net.minecraft.item.Item;

import net.minecraft.world.World;

 

 

public class BasicFactoryBlock extends Block {

    public BasicFactoryBlock(String name) {

        super(Material.rock);

        this.setBlockName(name);

        this.setCreativeTab(CreativeTabs.tabBlock);

        this.setBlockTextureName("octechnics:factory_base");

    }

}

 

 

assets/octechnics/lang/en_us.lang:

 

tile.octechnics:basic_factory_block.name=Factory Base

 

Текстуры немного переехали: из папки block попали в папку blocks.

 

Наконец, я запустил мод и он заработал: в первой вкладке творческого инвентаря появился блок с моей текстурой, правильно названный и нормально ставящийся в мир. Этого я и хотел! Дальнейшие приключения (расширение ассортимента и добавление к блокам блок-сущностей) будут в следующей статье.

  • Нравится 3


0 комментариев


Рекомендуемые комментарии

Нет комментариев для отображения

Гость
Добавить комментарий...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...