Создание модификаций с помощью forge/1.12+

Создание модификации

Если вас интересует вопрос о том, как сделать моды «Майнкрафт 1. 5. 2» и других версий, то вам нужно будет провести немало времени в «Фордже», так как нужно будет отдельно прорабатывать каждый блок, который вы собираетесь добавить в игру, задавать его назначение, взаимодействие с другими блоками и предметами. В общем, объем работ будет просто огромен — даже для создания одного нового блока с какими-либо базовыми функциями вам понадобится несколько часов кропотливой работы. Что уж говорить про модификацию — даже самая простая из них займет у вас несколько десятков часов. Теперь вы должны представлять, сколько же времени ушло у создателей того же «Индастриал Крафта», чтобы выпустить подобный проект.

Урок 5. Крафт[]

Если Вы создаёте модификацию исключительно для добавления/удаления рецептов уже существующих вещей, то следует также рассмотреть вариант использования MineTweaker.

Собственно, у нас есть блок и предмет. Мы можем их держать в руках, а блок даже ставить. Но а если мы хотим достать их, играя в режиме Выживания? Тогда блок или предмет можно только найти или скрафтить. Добавить крафт очень просто. Предположим, рецепт блока должен быть следующим:

Ингредиенты Рецепты крафта
Гравий +Железный слиток +Обсидиан

Тогда я запишу вот это в тело метода preLoad главного класса после строки регистрации блока в Forge:

GameRegistry.addRecipe(new ItemStack(BaseMyBestMod.bestblockever, 1),

  new Object[]{

    "###", "XYX", "###",

    ('X'), Blocks.gravel,
    ('#'), Items.iron_ingot,
    ('Y'), Blocks.obsidian

  }

);

Давайте разберем, что тут написано: Итак с помощью GameRegistry мы добавляем новый рецепт, new itemStack значит, что создастся новая стопка с предметом bestblockever который объявлен в классе BaseMyBestMod в количестве одной штуки (вместо 1 можно вписать любое число до 64). А далее уже записана сетка крафта. Как мы помним в верстаке мы видим всего 9 клеток, здесь первая строка верстака это «###», вторая строка — это «XYX», ну и последняя — «###». Понятней будет, если посмотреть вот так:

"###"
"XYX"
"###"

Каждый предмет в крафте обозначается своим личным знаком (любым). Далее это записано как То есть это означает, что X — это гравий, который является блоком. Соответственно знак # — это слиток железа (который является предметом, а не блоком), а Y — это блок обсидиана. Если нужно, чтоб в ячейке крафта ничего не лежало, то вместо знака пишется пробел (Например » # » значит что посередине будет слиток железа, а по бокам ничего).

Добавить рецепт крафта можно не только вашему блоку или предмету. Можно вписывать вместо или что угодно, главное что бы после точки была указана зарегистрированная переменная типа Block или Item. А до точки — это просто путь к этой переменной.

Если хотите создать крафт, который можно произвести в инвентаре, вместо «###», «XYX», «###» используйте «AA», «BC» соответственно.

Бесформенный крафт (то есть крафт, в котором можно располагать ингредиенты как угодно) опишите так:

GameRegistry.addShapelessRecipe(new ItemStack(Blocks.grass, 4), new Object[] {Blocks.gravel, Blocks.gravel, Items.arrow});

То есть если вы положите в верстак/инвентарь 2 блока гравия и стрелу, то получите 4 блока Земли, покрытой травой.

Если у блока/предмета есть несколько видов (например: дубовые, еловые, березовые доски и т. д.), то указав просто например: в крафте можно будет использовать любые доски! Что бы это исправить вместо напишем

Первое число всегда 1. Изменяем только второе число. 0 — это дубовые доски, 1 — еловые доски и т. д. (см. ID)

GameRegistry.addRecipe(new ItemStack(MuchBlocks.MyBlockS, 1),
  new Object[]{ " I ", "IPI", " I ",
    ('I'), Items.iron_ingot, ('P'), new ItemStack(Blocks.planks, 1, )}
);

Так же в игре, как мы знаем, присутствует переплавка одних предметов/блоков в другие. Рецепт такой переплавки создаётся всего одной строкой, которую нужно писать после регистрации блока bestblockever:

GameRegistry.addSmelting(bestblockever, new ItemStack(Blocks.diamond_block, 2), 1.0F);

Но теперь разберём. Итак, первой в скобках указана переменная типа Block (также можно Item), в данном случае это наш блок, затем идет переменная типа ItemStack, которая создаётся сразу же. У этой переменной уточняется, что создастся стак с блоком или предметом, в данном случае алмазным блоком, в количестве 2. Ну и последняя переменная отвечает за количество опыта, получаемого при переплавке.

Собственно, всё.

Семена#

Давайте создадим семена для нашей кукурузы. Создадим класс , унаследуем его от , содержать он будет только конструктор.

В супер-конструктор требуется передать объект блока агрокультуры, для которой эти семена предназначены, и «почву», где она должна расти. Опытным путём проверено, что второй параметр игрой успешно игнорируется и, независимо от того какой блок мы туда передадим, агрокультуру можно будет посадить только на блок грядки (). В конце данного урока я покажу как можно назначить свой блок для посадки. В остальном конструктор аналогичен конструктору блока.

Регистрируем предмет:

Не забудьте вызвать метод в преините и в преините .

Семенам требуется модель. Создайте JSON файл в «models/item»

В нём указывается что необходимо использовать стандартно генерируемую модель и указанную текстуру для одного слоя.

Скачайте текстуру и разместите её по пути «src/main/resources/assets/ваш modId/textures/items/corn».
Заметьте, мы создаём отдельную папку «corn» в папке текстур для предметов, связанных с кукурузой.

Что ж, идём дальше.

Создание модов с помощью API

API — это специальный программный интерфейс, который уже содержит в себе очень многие функции из самой игры, а также текстуры, скины и многое другое. Таким образом, вместо того, чтобы прописывать весь код с нуля, вы сможете использовать уже готовые решения, которые можно будет совмещаться между собой, создавая что-то новое. Существует большое количество разнообразных интерфейсов, и выбрать среди них что-то конкретное может быть проблемой. Здесь нужно учитывать специфику мода, например, в отношении режима «Майнкрафт» — выживание, хардкор, креатив и так далее. Но если вы только начинаете делать моды, а также хотите, чтобы ваша модификация была доступна максимальному количеству людей, то вам нужно использовать Minecraft Forge. Это наиболее распространенный API, который сейчас существует — в то же время он самый функциональный, объемный и востребованный

Поэтому, если вы собираетесь добавлять в Minecraft новые моды — обратите внимание в первую очередь именно на него

Блок агрокультуры#

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

В этом классе нам необходимо переопределить два метода: и . Первый отвечает за выпадающие семена, второй за предмет-урожай, выпадающий при разрушении растения на финальной стадии созревания.

Как видно конструктор имеет стандартный вид, методы регистрации имён получают их параметром из конструктора блока. Имя мы будем задавать во время регистрации.

Как было отмечено, и ссылаются на новые объекты, которые будут созданы позже.

Наш класс переопределяет , который возвращает разные AABB (объект, отвечающий за физические габариты блока) для каждого (свойства) из (регистр свойств) блока. Наша агрокультура содержит одно унаследованное — «age», представляющее стадии роста — всего их восемь. Если вы хотите изменить количество стадий — создайте собственное и верните его в переопределённом . На каждой стадии роста растение имеет разные размеры и AABB различаются, возвращает нужную из массива, созданного в начале класса. Границы AABB в нашем случае определяются размером текстуры блока на разных стадиях роста.

Еще в этом классе переопределён , отвечающий за то, на сколько стадий роста будет ускорено созревание при применении костной муки. В данном случае он случайно вернёт значение ускорения на одну или две стадии.

Чтобы при затаптывании грядки с кукурузой она разрушалась, необходимо переопределить и вернуть .

Теперь регистрация блока.

Не забудьте вызвать метод в преините .

Теперь нужно создать файл блокстейта для нашей кукурузы. Создайте JSON файл по пути «src/main/resources/assets/ваш modId/blockstates/»

Рассмотрим его содержимое подробнее.

определяет версию блокстейта, всегда равен 1.

Блок содержит указание на используемую модель. Мы будем использовать одну из ванильных моделей. Модель представляет собой две скрещенные текстуры (аналогично блокам травы). Вы можете использовать в качестве модели которую используют ванильные агрокультуры (в нашем случае для кукурузы лучше смотрится ).

Блок используется для определения текстур, которые должен использовать блок с разными свойствами. В нашем случае свойство «age» использует разные текстуры для всех своих вариантов (восьми стадий роста).

Наша кукуруза использует ванильную модель блока, и нет нужды создавать собственную.

Теперь нужно добавить текстуры. В соответствии с блокстейтом их должно быть восемь, скачайте их отсюда и разместите по пути «src/main/resources/assets/ваш modid/textures/blocks/corn/». Всё, с блоком разобрались.

Как создать блок в Майнкрафте

Хотя инструмент переполнен функциями и возможностями, начинать творческий путь стоит с малых достижений. Вот инструкция по MCreator, призванная облегчить процесс подготовки нового блока:

  • Первый шаг – подготовка рабочего пространства с помощью кнопки, изображающей плюсик и расположенной на панели быстрого доступа слева;
  • В появившемся меню необходимо выбрать вариант Block (Блок) и выбрать название для будущего ресурса или декоративного элемента. Вводить текст рекомендуется на английском языке (поэкспериментировать над переводом помогут плагины и расширения);
  • Дальше предстоит разобраться с оформлением блока. Предусмотрен вариант с загрузкой текстур файлом (поддерживаются основные форматы изображений) или же подготовкой оформления вручную через встроенный редактор. Вне зависимости от выбора менять дизайн предстоит с помощью 6 квадратов, обозначающих грани блока в развертке.

    Если оформление одинаково со всех граней, то достаточно заполнить цветом или изображением лишь левую часть (Left) – остальным значение передается автоматически.

  • Не обойтись и без настройки характеристик: MCreator разрешает выбирать тип рендера, задавать прозрачность (Transparency), менять параметры «твердости» (Hardness), влияющей на скорость добычи, взрывоустойчивой силы (Resistance), способов выпадения (Dropping Properties) и свойств земли, редстоуна, пропускной способности.
  • Переход между каждым шагом сопровождается нажатием на кнопку Next. Если необходимо вернуться назад – необходимо выбирать Back на панели быстрого доступа.
  • Последующие шаги подготовки нового блока связаны с вместимостью и способами компоновки в инвентаре (сколько блоков вмещается в ячейку, максимальное количество стаков). Дополнительно предусмотрена возможность стирать блок после разрушения: достаточно снять галочку с пункта Drop items from inventory when block destroyed.
  • Процесс подготовки нового блока заканчивается на этапе выбора параметров генерации (Generation Properties). Разработчики MCreator предлагают выбрать, куда добавлять блок (биом, примерная высота, тип мира – стандартный, нижний), в каком количестве и объеме, необходимы ли специальные обозначения редкости. Каждый из пунктов меню подбирается с помощью выпадающих меню, а потому знать значения и дополнительную информацию необязательно – инструмент подскажет, куда нажимать.

информация о новом блоке

MCreator – не единственный представитель жанра: схожие по замыслу инструменты периодически появляются в сети. Но где-то необходимо знать языки программирования или подбирать подходящую версию под Minecraft, а где-то не обойтись без дополнительной подготовки. MCreator призван помочь каждому реализовать задуманное в полуавтоматическом режиме: справятся даже новички.

Запускаем Minecraft на VDS или выделенном сервере

Сделать сервер Майнкрафт можно через хостинг. Для этого потребуется сервер с достаточно мощным железом. В таком случае нужно будет скачать серверную версию Minecraft и удаленно установить ее на арендованное оборудование. 

В хостинге Timeweb можно купить готовый выделенный сервер или самостоятельно подобрать конфигурацию. Правда, этот вариант не самый дешевый. Если у вас ограничен бюджет, можно подключить VDS сервер. Это отличный вариант для начинающих геймеров. 

Из минусов – это не самый простой способ, для его реализации требуются определенные знания и навыки в администрировании. При работе могут возникать какие-либо трудности и нюансы, также вполне допустимо возникновение проблем в процессе запуска и настройки сервера.

Но результат определенно того стоит – пользователь сможет реализовать на таком сервере любые возможности для игры, использовать любые шаблоны, моды и защитное ПО. Такой сервер доступен круглосуточно и не зависит от того, включен ваш компьютер или нет. Такой сервер можно будет использовать для игры с друзьями или продавать.

О том, как создать сервер Minecraft на VDS на базе платформы CentOS 7, ранее было рассказано в другой статье. 

Создание сервера Minecraft на VDS с Ubuntu 18.04

Чтобы создать сервер Майнкрафт для игры с другом потребуется заранее установить на сервер дистрибутив Ubuntu 18.04 и включить поддержку SSH. В хостинге Timeweb можно выбрать тариф с оптимальными параметрами и ценами. Если выяснится, что этих характеристик недостаточно, вы сможете выбрать тариф с большей производительностью.

Первым делом после подготовки сервера надо установить Java. Рекомендуется версия 8 OpenJDK для Java, в частности, headless JRE. Это минимальная версия, не имеющая поддержки графического интерфейса в приложении. Именно поэтому она отлично подходит для запуска приложений Java на сервере. Для скачивания и установки надо ввести следующую команду:

sudo apt install openjdk-8-jre-headless

Еще нужно будет скачать приложение Screen (о его назначении говорилось выше), для этого дается следующий запрос:

sudo apt install screen

После того как все необходимо ПО установлено, потребуется активировать брандмауэр для разрешения трафика на сервер Minecraft. В игре по умолчанию используется порт 25565. Чтобы внедрить это правило, запускается такая команда:

sudo ufw allow 25565

Наконец пришло время для скачивания и установки сервера Minecraft. Для этого используем утилиту wget. Открываем сайт разработчика для загрузки сервера, копируем ссылку на загрузку и вставляем ее после утилиты. Примерно так это будет выглядеть:

wget https://launcher.mojang.com/v1/objects/c5f6fb23c3876461d46ec380421e42b289789530/server.jar

Как только загрузка завершится, потребуется принять лицензионное соглашение через файл. Надо для этого открыть в текстовом редакторе nano файл eula.txt. Затем следует найти параметр eula=false и поменять значение на true. Теперь можно приступать к запуску файла jar. Открываем приложение screen и даем в нем вот такую команду:

java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.2.jar nogui

В течение нескольких секунд будет совершена инициализация. Потом выйдут результаты, примерно вот такие:

Server thread/INFO: Done (32s)! For help, type "help"

Это значит, что подключение сервера завершилось.

Генерация предметов в контейнерах натуральных структур[]

Итак, вы можете сделать так, чтобы ваш, или любой другой предмет/блок генерировался в сундуках сокровищницы. Для этого в методе preLoad() в главном классе вставьте следующее:

  ChestGenHooks.addItem(ChestGenHooks.DUNGEON_CHEST,
    new WeightedRandomChestContent(new ItemStack(BaseMyBestMod.bestblockever), 1, 10, 3));

Разберемся в параметрах:

  1.  — Вместо выберете одно из возможных мест генерации в выпадающем списке.
  2.  — Требуемый блок/предмет. В скобках указывается любая переменная типа Block или Item.
  3.  — Минимальное генерируемое количество.
  4.  — Максимальное генерируемое количество.
  5.  — Шанс генерации.

Разработка без API

Этот процесс является гораздо более сложным, чем создание модов с использованием API. В данном случае вы не применяете никаких наборов инструментов, а работаете напрямую с исходным кодом игры. Соответственно, вам необходимо владеть гораздо более глубокими познаниями в сфере программирования, а также иметь детальное представление обо всех аспектах игры, которую вы будете редактировать. Плюсы в данном случае очевидны: вам не нужно ничего устанавливать, чтобы создавать или запускать моды, а также вы получаете полную свободу действий. Однако минусов имеется также немало, ведь ваши моды, например, не будут совместимыми с другими модификациями, а также они не будут работать на версиях «Майнкрафта», отличных от той, для которой вы их писали. Ну и, конечно же, самый главный минус – это высокая сложность работы

Но если вы хорошо владеете программированием, и оно является важной частью вашей жизни, то эти трудности вам будут не новы

McPack / McAddon:

Некоторые программисты делают моды для сторонних лаунчеров, таких как Blocklauncher, так как через сторонний софт мододелы получают возможность внедрить больше возможностей, чем в обычные аддоны. Но как же устанавливать такие моды? Давайте разбираться!

  1. Для начала убедитесь, что у Вас последняя версия МКПЕ. Скачать последнюю версию Вы сможете также на нашем сайте.
  2. Перейдите в раздел «Скачать моды на Майнкрафт ПЕ», выберите подходящий вам мод и скачайте себе на устройство.
  3. Затем вам понадобиться любой файловый менеджер с поддержкой извлечения ЗИП архивов. В нашем случае это старый добрый «ES Проводник».
  4. Нажмите на скачанный архив, затем кнопку «Извлечь» и распакуйте ее в любой своей папке.
  5. Выйдите с архива и зайдите в папку, которую только что извлекли. Обычно там можно увидеть всего одну папку, с самим модом, однако в последнее время начали появляться аддоны с текстурой, поэтому нужно будет переместить две папки по разным директориям (для модов и текстур)
  6. Для начала скопируйте папку «Textures» в следующую директорию: /games /com.mojang/ resource_packs
  7. Теперь необходимо установить сам мод к текстуре. Вернитесь в папку с аддоном и скопируйте другую папку, она может называться «Behavior» или «Mosda». Скопируйте папку и переместите ее в следующую директорию: /games /com.mojang /behavior_packs

Где можно скачать такие аддоны для Minecraft PE? — На нашем сайте есть раздел «Моды для Minecraft PE», там Вы найдете огромное количество дополнений в этом формате.

Активируйте мод в разделах «Наборы ресурсов» и «Наборы параметров».

Начало работы с MCreator

MCreator, объявленный «Лучшим создателем модов Minecraft», — это бесплатный инструмент для создания собственных модов Minecraft. Вам не нужно писать какой-либо код, хотя вы можете, если хотите.

Начните с посещения страницы загрузки MCreator и загрузки версии, соответствующей вашей текущей версии Minecraft.

На странице загрузки указывается, какая версия MCreator вам нужна, но если вы используете Minecraft версии 1.12.2, вам понадобится MCreator версии 1.7.9.

Как только вы выбрали версию, скачайте MCreator для вашей операционной системы. Поддерживаются все операционные системы Windows, Mac и Linux.

Если вы используете Windows, загрузите и запустите исполняемый файл (EXE). Если вы используете Mac или Linux, установка немного сложнее, но руководство по установке MCreator содержит подробные инструкции по установке.

После запуска MCreator потребуется немного времени, чтобы навести порядок. Для этого необходимо скачать Minecraft Forge Development Kit, загрузить зависимости и скомпилировать. Это может занять некоторое время в зависимости от вашего компьютера и скорости интернета, но как только он будет завершен в первый раз, больше не нужно будет делать это снова.

После настройки MCreator спросит, хотите ли вы войти в свою учетную запись Pylo. Идите вперед и нажмите Пропускать если у вас его нет.

Теперь все готово к работе. Экран, который вы видите, является главным меню для MCreator. Вы можете импортировать или экспортировать текущие настройки, устанавливать моды, разработанные другими людьми, или начать писать свои собственные моды.

Способ установки модов с помощью официального Minecraft Launcher:

Установка модов в нём сложнее, так как там нет уже готовых версий OptiFine и Forge, как они встроены в пиратских лаучнерах. Но можно упростить себе задачу, установив forge клиент. О том, как это сделать мы писали ранее здесь. После установки он появится во всех лаунчерах, даже в официальном. Про установку Fabric вы можете прочитать в отдельной статье. Там всё расписано подробно, так что вы вряд ли запутаетесь. Вот эта статья

ВНИМАНИЕ!! Моды, созданные под Fabric и Forge работают только для Fabric и Forge соответственно! Мод для Fabric не будет работать, если вы выбрали Forge для загрузки игры и наоборот

1. После установки Forge версии игры заходим в лаунчер игры.

2. Нажимаем на выбор версии игры и ищем ту, которую вы только что установили (у модифицированной версии есть приписка Forge).

3. Майнкрафт лаунчер может выдать предупреждение, но все в порядке. Просто нажимаем на кнопку «Играть».

Урок 7. Генерация[]

Теперь мы сделаем так, чтобы теперь какой-либо блок, аналогично рудам, генерировался в обычном мире, в Нижнем мире или в краю. Теперь в главном классе (BaseMyBestMod) после регистрации блока в Forge регистрируем новую переменную:

public static BestBlockGenerator bestblockgenerator = new BestBlockGenerator();

и исправляем ошибку, создав нужный класс. Естественно, вместо BestBlockGenerator вы можете использовать любое название. Далее в методе в любом месте после регистрации блока, который хотите генерировать, добавьте такой код:

GameRegistry.registerWorldGenerator(bestblockgenerator, );

Тем самым вы зарегистрируете ваш генератор. Число «0» обозначает каким по счёту будет загружаться генератор (0 — первым, 1 — вторым и т. д.).

Теперь в созданном классе после добавьте и в тело класса добавьте это:

Описание параметров метода addOreSpawn() можно увидеть (чтобы разобраться в них), наведя курсор на его название. Эту информацию мы привязали к методу, благодаря javadoc-комментарию.

Теперь можно запускать и смотреть результаты.

Первые шаги с Forge

Эта статья вики направлена ​​на чтобы обеспечить надежный обзор нескольких ключевых элементов учебника Forge: https://mcforge.readthedocs.io. Добавьте их страницу в закладки, так как она решает многие вопросы в этой статье. Более того, существует более одного действительного способа достичь желаемого результата; эта статья в вики будет сосредоточена на самом простом, который, вероятно, не самый эффективный или элегантный. Если вы будете точно следовать шагам, изложенным здесь, у вас скоро должен быть функциональный мод, с которым вы затем сможете повозиться сколько душе угодно. Если вы используете Linux, руководство Forge, вероятно, будет для вас более полезным. Если вы используете Windows, читайте дальше.

Замечание о заполнителях

В этом руководстве для обозначения профиля пользователя, с которым вы вошли в систему, будет использоваться слово «вы»; если вы копируете и вставляете пути из этого руководства, не забудьте заменить «You» своим собственным именем пользователя Windows.. В этом руководстве для обозначения разделов, которые следует заменить именем мода, выбранным для вашего проекта, будет использоваться «yournewmod».

1. Создайте папку для своего проекта

2. Получите «исходный дистрибутив»

Посетите https://files.minecraftforge.net и убедитесь, что выбранная версия является той версией, для которой вы хотите создать мод. В большом поле «Рекомендуемая загрузка» щелкните маленькое поле MDK. Появится диалоговое окно с вопросом, где вы хотите сохранить файл и как назвать его. Выберите любое удобное место, но оставьте название без изменений.

3. Скопируйте ключевые файлы в папку вашего проекта

Откройте папку forge-1.12.2 -…- mdk (с распаковкой или без нее сначала) и скопируйте- вставьте следующие 5 файлов из этой папки в папку проекта, которую вы создали на первом шаге:

  • папку
  • папка

4. Импортируйте проект gradle

Откройте/запустите программу IntelliJ IDEA. На целевом экране нажмите «Импортировать проект». Появится диалоговое окно с вопросом, какой файл импортировать. Перейдите в папку своего проекта и выберите build.Gradle, затем нажмите OK.

5. Назначьте JDK

В следующем окне щелкните поле «Gradle JVM» и перейдите к файлам JDK, которые вы установили ранее. Если вы получили обновление 212 версии 8, выберите папку с именем «jdk1.8.0_212». Нажмите OK и дождитесь завершения сборки, отобразив результаты в нижнем поле.

6. Настроить рабочее пространство

Установка зависимостей не требуется. Перейдите к следующему шагу, поскольку новое обновление в Forge команда setupDecompWorkspace не требуется

7. Настройте параметры запуска

После обновления дважды щелкните запись «genIntellijRuns». Откройте окно «Изменить конфигурации» параметров запуска и посмотрите примерно на полпути вниз, чтобы найти «Использовать путь к классам модуля». Щелкните его раскрывающееся поле и выберите вариант, заканчивающийся на , затем нажмите Применить. Если настройки, которые вы только что закончили редактировать, относились к Minecraft Client, нажмите Minecraft Server и повторите шаги, чтобы установить путь к классам.

Теперь вы можете запустить клиент, который запустит Launcher с вашим модом включены. Когда вы попадете в меню посадки, вы можете проверить, присутствует ли ваш мод.

Ошибки[]

Основная статья: Аварийное завершение игры

При установке определённой модификации существует вероятность, что Minecraft аварийно завершит работу. Отчёт об ошибке располагается в папке в виде текстового документа, находящаяся в директории компьютерной игры.

Сокращённый вариант отчёта об ошибке расположен ниже:

Отчёт об ошибке
---- Minecraft Crash Report ----
// Uh... Did I do that?

Time: 1/1/17 12:00 AM
Description: Manually triggered debug crash


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- System Details --
Details:
	Minecraft Version: 1.12
	Operating System: Windows 10 (amd64) version 10.0
	Java Version: 1.8.0_131, Oracle Corporation
	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
	Memory: 524288000 bytes (500 MB) / 536870912 bytes (512 MB) up to 1073741824 bytes (1024 MB)
	JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -XX:+DisableExplicitGC
	IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
	Launched Version: 1.12
	LWJGL: 2.9.4
	OpenGL: AMD Radeon (TM) R9 999 GL version 9.9.99999 Compatibility Profile Context 99.99.999.999, ATI Technologies Inc.
	GL Caps: Using GL 1.3 multitexturing.
Using GL 1.3 texture combiners.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Shaders are available because OpenGL 2.1 is supported.
VBOs are available because OpenGL 1.5 is supported.

	Using VBOs: No
	'''Is Modded: Probably not. Jar signature remains and client brand is untouched.'''
	Type: Client (map_client.txt)
	Resource Packs: 
	Current Language: English (US)
	Profiler Position: N/A (disabled)
	CPU: 9x Intel(R) Core(TM) i9-9999Z CPU @ 9.99GHz

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

Is Modded: Probably not. Jar signature remains and client brand is untouched
Is Modded: Very likely; Jar signature invalidated
Is Modded: Definitely: client brand changed to (present loader, such as "fml,forge" or modloader)
Is Modded: Unknown (can't tell)

Следует удостовериться, что код, который выполняет проверку используемых модификаций, не всегда правильно устанавливает причину аварийного завершения: в строке возможны сведения об отсутствии предустановленных модификаций, даже при их присутствии.

Урок 4. Предмет[]

Ну вот мы и создали блок. Но ведь в игре присутствуют не только блоки, но и предметы. Такие как еда, инструменты, в общем всё подряд, что обычно нельзя поставить на землю. Давайте создадим такой предмет. Для примера возьмём кирку.

Перейдем в главный класс модификации. До метода preLoad() сразу после допишите:

public static Item bestpickaxe;

Тем самым мы создадим переменную типа Item с кодовым названием кирки.

В методе preLoad() для удобства отступите одну строку от того что уже написано, и пишите туда следующее: (Я сразу напишу всё, что нужно, многие элементы описания предмета совпадают с описанием блока, особой разницы нет)

bestpickaxe = new BestPickAxe().setUnlocalizedName("bestpickaxe");
GameRegistry.registerItem(bestpickaxe, "bestpickaxe");

Итак, мы создали кирку, дали ей нелокализированное имя и зарегистрировали в Forge. Щелкнув по ошибке создадим класс этой кирки. Класс создан, но Eclipse не знает, что мы хотим создать — еду или инструмент, поэтому сделаем этот класс наследником класса, где написано про инструмент или еду или что хотите, главное, что про предмет, а не блок. В строчке после BestPickAxe допишите и импортируйте этот самый ItemPickaxe.

Немного об ItemPickaxe: pickaxe — это кирка по-английски, и, соответственно, говорит о том, что мы «продолжаем» или дополняем класс ItemPickaxe, в котором указаны все базовые характеристики и функции, такого Item’а или предмета, как кирка. Таким образом можно продолжать любой класс, в зависимости от того, какой предмет нужен. То есть, если нужна еда, то мы продолжаем класс ItemFood, если броня, то ItemArmor, а если свой особенный предмет, то просто Item. Не забывайте: вы всегда можете посмотреть список возможных продолжений того, что вы пишете.

Теперь, не обращая внимания на появившуюся ошибку вставьте в тело это:

protected BestPickAxe() {
  super(ToolMaterial.EMERALD);
}

Тогда ошибка исчезнет. Строка говорит о том, что пошлёт в супер-класс информацию о том, что кирка обладает свойствами алмазной кирки. Ну и также допишем после этой строчки

this.setCreativeTab(CreativeTabs.tabTools);

тем самым добавив кирку в раздел инструменты в режиме «Творчество».

Почти готово. осталось только добавить текстуру, давайте модифицируем текстуру из Minecraft. Зайдите в папку c Minecraft\versions\1.7.2, там откройте jar-файл c помощью архиватора, в архиве перейдите в assets\items и там найдите какую-нибудь текстуру кирки, извлеките на рабочий стол. Файлы текстур НЕЛЬЗЯ редактировать обычным Paint’ом, так как текстура должна быть кое-где прозрачной, если вы не хотите конечно идеально квадратную кирку. В общем отредактируйте текстуру как угодно, главное чтоб была 16×16. Назовите текстуру BestPickAxe.png Теперь создайте в проекте директорию с текстурами предметов. Для этого ПКМ по src → New → package а в названии напишите и туда мышью с раб. стола перенесите готовую текстуру и нажмите ОК. Теперь скажем предмету где его текстура. Пропишите следующее всё в том же методе кирки.

this.setTextureName("mybestmod:BestPickAxe");

И можно запускать для проверки.

Собственно вот мы и создали первый предмет — инструмент — кирку, которая по свойствам, как алмазная. В доп. уроке вы можете посмотреть, как создать инструмент с особыми свойствами.

Разносторонняя текстура блока[]

Я буду использовать следующие текстуры:

Для этого, добавьте такой код в тело класса:

public IIcon[] icons = new IIcon6];

И такой после конструктора класса:

@Override
public void registerBlockIcons(IIconRegister reg) {
  for (int i = ; i < 6; i ++) {
    this.iconsi = reg.registerIcon(this.textureName + "_" + i);
  }
}

Теперь в папку добавьте файлы с таким именем:

И ещё такой код:

@Override
public IIcon getIcon(int side, int meta) {
  return this.iconsside];
}

В игре блок будет выглядеть так:

Важно то, что текстура северной и восточной (2 и 5) части блока отображается зеркально. Если вы не поняли, то поставьте блок ТНТ и посмотрите на части, где написано TNT

С одной стороны написано «TNT», а с другой — «ТИТ».

Где ваши модов Minecraft возьмет вас?

Моддинг Minecraft — отличный способ добавить разнообразие в игру, но еще лучше, если вы сделаете мод самостоятельно. Как только вы изучите эти основные строительные блоки, вы можете начать создавать более сложные моды.

Если вы хотите настроить Minecraft, но хотите что-то изменить быстрее и проще, посмотрите, как создавать и устанавливать пользовательские текстуры Minecraft.

Если вам предстоит более сложная задача, следуйте нашему руководству по моддингу Minecraft Pi, которое устраняет разрыв между Minecraft и реальным миром. Кроме того, эти удивительные проекты Minecraft для детей

отлично и тонны веселья.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector