Учебники: блоки

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

Обзор

Для создания блоков мы собираемся:

  1. Зарегистрируем и отобразим блок в игре
  2. Создадим файл .json, чтобы блокировать текстуру

Создание пользовательского класса блока

Инициализация переменной блока

  1. Создание класс с именем ModBlocks в пакете init .
  2. Сделайте init и register методы.
  3. Создайте объект Block и присвойте ему UnlocalizedName

Итак, теперь у вас должна быть ошибка вокруг Объявление блока и что-то вроде этого:

 public class ModBlocks {public static Block test_block; public static void init () {test_block = new Block ( здесь ошибка   ) .setUnlocalizedName ("test_block");} public static void register () {} 

В скобках, где указано значение er ror помещается этот код:

 test_block = new Block ( Material.cloth ) .setUnlocalizedName ("test_block"); 

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

Создание класса

Теперь нам нужно создать наш собственный класс Block, поскольку тот, который используется в игре, защищен, а это означает, что его могут использовать только классы, которые его расширяют. Поскольку у класса Block слишком много параметров для использования только в классе реестра, мы собираемся создать отдельный класс для его обработки. Перейдите в свой пакет com.name.mod и создайте новый пакет с именем blocks. В новом пакете создайте новый класс блока и назовите его как хотите, кроме «Block», поскольку это имя ванильного класса и может вызвать некоторое перекрытие. В этом руководстве я назову свой класс BlockTest.

В классе BlockTest добавьте расширение класса к классу Block, импортируйте класс и добавьте конструктор. Вы можете удалить комментарий TODO и изменить ‘protected модификатор на’ public ‘, чтобы он выглядел примерно так:

 public class BlockTest extends Block {public BlockTest (Material materialIn) {super (materialIn)  ;  }} 

Теперь вернитесь к классу ModBlocks и замените Block на BlockTest или как там ваше имя для вашего класса и импортировать его:

 test_block = new BlockTest ( Material.cloth ). setUnlocalizedName ("test_block"); 

Регистрация/рендеринг блока

Внутри метода register введите строку кода, которая регистрирует блок, как в учебнике по элементам:

 GameRegistry.registerBlock (test_block, test_block.getUnlocalizedName (). substring (5)); 

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

 public static void  registerRenders () {} public static void registerRender (Блокировать блок) {Item item = Item.getItemFromBlock (block);  Minecraft.getMinecraft (). GetRenderItem (). GetItemModelMesher (). Register (item, 0, new ModelResourceLocation (Reference.MOD_ID + ":" + item.getUnlocalizedName (). Substring (5), "inventory"));} 

Наконец, внутри метода registerRender добавьте строку регистрации для блока:

 registerRender (test_block); 

Опять же, как в items, перейдите к классу ClientProxy и добавьте следующую строку:

 ModBlocks.registerRenders (); 

Еще раз в ModClass вызывает методы init и register над методами элемента в методе preInit:

 ModBlocks.init (); ModBlocks.register (); 

Теперь вы можете создать свой нетекстурированный блок с помощью команды ‘give’ из учебника по элементам:

/give  :  

Текстурирование блока

Сохранение текстуры

Еще раз, вам нужно будет создать текстуру, убедившись, что это 16 пикселей на 16 пикселей. Создайте новую папку с именем blocks в папке с текстурами и сохраните ее в этом каталоге:

 /src/main/resources/assets//textures/blocks 

Обязательно назовите текстуру блока точно таким же именем, как и переменная блока в коде. Например, у меня будет test_block.

Создание файлов .json

Войдите в Eclipse и обновите свой пакет. Нам нужно создать две модели блоков: одну для блока внутри инвентаря, а другую — для реальной сущности в игровом мире. Сначала мы собираемся создать модель мира, поэтому перейдите в пакет src/main/resources и найдите там пакет models.item . Создайте новый подпакет в этом пакете и назовите его block , так что теперь у вас должен быть каталог внутри пакета src/main/resources с именем assets.tm.models.block . Теперь создайте новый текстовый файл без названия внутри пакета block и скопируйте некоторые данные простого блока из одного из стандартных блоков в:

 Referenced Libraries/forgeSrc/assets/ minecraft/models/block 

Я собираюсь использовать информацию о блоке «грязь» для этого урока. Скопируйте данные в текстовый файл и измените эту строку:

 "all": "blocks/dust" 

На эту строку:

 "all": ": blocks/" 

Теперь сохраните файл в Minecraft/src/main/resources/assets/ /models/block и снова укажите имя переменной, а затем — ‘.json’.

Теперь нам нужно создать модель инвентаря. Теперь перейдите в этот каталог (обратите внимание, как мы переходим к папке ‘items’ вместо папки ‘models’):

 Ссылки на библиотеки/forgeSrc/assets/minecraft/models/item 

Найдите простой блок для использования. Для единообразия я снова буду использовать блок «грязь», но вы можете использовать любой простой блок. Скопируйте данные, создайте новый текстовый файл без названия в пакете assets. .models.item и вставьте его. Измените эту строку:

 "  parent ":" блок/грязь "

К этой строке:

" parent ":" : block/ "

Сохраните его в каталоге Minecraft/src/main/resources/assets//models/item и назовите его своим именем переменной, добавив после него ‘.json’.

Назначение простого состояния блока

Состояния блока — это то, что позволяет определенной модели отображаться в игре. Если элемент имеет более одной «подмодели», вам нужно будет назначить состояние блока, чтобы указать, какую модель использовать при размещении. Некоторые блоки, такие как пшеница, имеют несколько состояний блока, но другие блоки, такие как земля или камень, имеют только одно состояние. Мы узнаем, как назначать более сложные состояния блоков в следующем руководстве. Независимо от того, сколько состояний имеет ваш блок, вам нужно будет сообщить блоку, какое состояние использовать, иначе он не будет размещен.

Итак, чтобы дать нашему блоку состояние блока, переместите его в свой assets.tm в проводнике пакетов и создайте в нем новый пакет с именем blockstates . Внутри этого пакета создайте новый текстовый файл без названия и поместите в него этот код:

 {"options": {"normal": {"model": ": "  }}} 

Сохраните этот файл в Minecraft/src/main/resources/assets//blockstates с именем переменной, за которым следует ‘.json’ .

Теперь, если вы запустите игру в Eclipse, вы должны иметь возможность появиться в блоке с той же командой, что и раньше, и вы должны иметь возможность поместить его в мир и разбить его. В следующем уроке мы рассмотрим, как задать свойства блоков, а также предоставить блокам сложную модель и текстуру как в инвентаре, так и в мире и сделать их пригодными для создания, так что следите за этим. Удачной модификации!

Сообщество контент доступен по лицензии CC-BY-SA, если не указано иное.
Оцените статью
Gamicon.ru
Добавить комментарий