Иконка ресурса

Современная среда разработки для 1.7.10/1.12.2 2025-03-15

Нет прав для скачивания
Версия(и) Minecraft
1.7.10, 1.12.2
Представляю вашему вниманию шаблон среды для разработки модов на стареньких версиях Minecraft с поддержкой всех актуальных возможностей. Среда базируется на плагине RetroFuturaGradle от GTNH. Ему пока уделено недостаточно внимания на просторах данного форума. Считаю, надо это исправлять.

Из интересных фич:​

  1. Поддержка современных версий Gradle и Java
  2. Улучшенные маппинги для 1.7.10 с дженериками.
  3. Поддержка Mixins из коробки 🤩
  4. Наличие деобфуксатора зависимостей rfg.deobf() 🤩
  5. Отказ от копирования всего исходного файла только для того чтобы заменить в нём строки вроде @VERSION@. Вместо этого плагин автоматически генерирует класс тегов с нужными константами, на который может ссылаться ваш код.

Начало работы​

Скопируйте шаблон проекта: GitHub - CleanroomMC/TemplateDevEnv: Template workspace for modding Minecraft 1.12.2 [1.12.2]

Шаблон состоит из множества мелких файлов. Предполагается что вы НЕ будете вносить никаких изменения в файл build.gradle для удобства его обновления из шаблона в будущем.
  1. Базовые параметры проекта задаются в gradle.properties
  2. Подключение дополнительных библиотек осуществляется в gradle/scripts/dependencies.gradle
  3. Дополнительные задачи и вспомогательных код прописываются в gradle/scripts/extra.gradle и gradle/scripts/helpers.gradle
Если вас не устраивает такая сложная структура проекта – откатываемся немного назад: GitHub - CleanroomMC/TemplateDevEnv at 7db468db1eff2bde9bd066414018748564bd5b40

А где Minecraft 1.7.10?​

Версия игры меняется буквально изменением всего двух строчек в главном файле конфигурации
build.gradle:
minecraft {
    mcVersion = '1.7.10'

    // MCP Mappings
    mcpMappingChannel = 'stable'
    mcpMappingVersion = '12'

    // ...
}
Версия Forge изменится автоматически вместе с версией игры. Она прописана хардкодом 😕

Можно также посмотреть пример конфигурации в официальном репозитории: RetroFuturaGradle/example/build.gradle.kts at master · GTNewHorizons/RetroFuturaGradle

Особенности работы​

  1. Имена некоторых тасков Gradle отличаются. Например, не получится отключить создание Jar архива с суффиксом dev. Его генерирует таск jar, а уже из него таск reobf делает релизную версию мода.
  2. Нельзя изменить рабочую директорию игры run – прописана хардкодом.
  3. Исходный код Minecraft подключается как SourceSet, а не библиотека. Из-за этого возникают проблемы со сменой версии игры – оно не происходит при переключении веток Git. Приходится удалять папку build/rfg и ждать пока Minecraft скомпилируется заново. Я пока не нашёл способа сделать разные пути в зависимости от версии Minecraft.
Автор
TheAndrey
Скачивания
8
Просмотры
1,928
Первый выпуск
Обновление
Оценка
3.67 звёзд 3 оценок

Другие ресурсы пользователя TheAndrey

Последние рецензии

Давно пора было это сделать
Респект автору за то что не поленился
Для приличия, хоть бы вырезалку подключил, без неё это калл
TheAndrey
TheAndrey
Не стал подключать – коммерческая тайна. OpenSource модам оно вовсе не нужно.
Выглядит как рабочий Proof-of-concept, но не более. Декларативный конфиг сборки тесно перемешан с логикой сборки. Сама же логика сборки построена на [нерекомендуемом подходе script plugin'ов](https://docs.gradle.org/current/userguide/custom_plugins.html#sec:build_script_plugins). Закладывание предположения что юзер не будет вносить изменения в билдскрипт выглядит по меньшей мере недальновидно.

Если и основывать проекты на базе этого шаблона, то придется закладывать время на рефакторинг этого кошмара. Было бы очень здорово если бы шаблон был организован лучше.
TheAndrey
TheAndrey
Боюсь, вы обратились не по тому адресу. Я не являюсь ни автором данного руководства, ни автором плагина. С подобного рода предложениями «а вот так правильно» добро пожаловать в issue трекер проектов на GitHub.
В среде моддинга главное требование: лишь бы работало, не важно как.

Данный материал предоставлен в ознакомительных целях без каких-либо гарантий. Автор не несёт ответственности за возможный причинённый ущерб, включая эмоциональное состояние пользователя.
Назад
Сверху