User Tools

Site Tools


ru:tutorial:concepts

Основные концепции Minecraft

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

Понятие Описание
Предмет(Item) Что-то, что можно взять в руку, уронить на землю, поместить в инвентарь или хранить в контейнере. Это может быть инструмент или блок, который вы держите в руке, прежде чем поместить его.
Блок(Block) Ключевой компонент для всего, что вы строите в Minecraft и размещаете в мире. Многие блоки - это кубы, но большинство вещей, которые вы размещаете в мире, реализованы в виде блоков, например, печь. Некоторые блоки даже не очень похожи на кубики, например, кнопки, заборы и двери, и все же они рассматриваются как блоки. Важно отметить, что блок следует рассматривать в коде как определение типа блока, а не как фактический отдельный блок, который вы видите в игре.
Состояние блока(Block state) Состояние блока (часто встречается в коде под названием “state”) - это конкретный экземпляр блока вместе с его свойствами (например, ориентация, нахождение в воде или стадия роста). Это то, что вы обычно воспринимаете как блок во время игры. Каждое состояние блока может иметь свою собственную 3D модель.
Предмет блока(Block item) Форма предмета блока, так что вы можете держать их в руке, складывать и хранить.
Сущность(Entity) Динамические объекты в мире, которые обычно двигаются. Например, ItemEntity для предметов, и, конечно, LivingEntity. Некоторые другие вещи иногда также реализуются как сущности, например, снаряды, рамки предметов и картины.
Живая сущность(Living entity) Подкатегория сущностей, которые живы и движутся в мире, например, игроки и мобы (коровы, зомби, летучие мыши и т.д.).
Сущность блока(Block entity) Хранит дополнительные данные для блока, например, содержащиеся предметы или крафты. Они могут предоставлять дополнительную логику для блока, например, при тикании. Не все блоки имеют блочные сущности - те, которые имеют, реализуют BlockEntityProvider. Блочные сущности не то же самое, что сущности!
Модель блока/предмета(Block/item model) Модель - это набор описательных данных, используемых для представления внешнего вида блока или предмета. Например, железный блок или печь будет содержать информацию, описывающую форму и размер каждой из его сторон, а также информацию о том, где найти текстуру (изображение), которая используется для придания конкретной поверхности ее уникального вида. Модели обычно описываются в файлах JSON, но также могут быть сгенерированы с помощью Java-кода.
Модель сущности(Entity model) Сущности также имеют свои собственные 3D-модели, которые обычно определяются полностью в коде как экземпляры net.minecraft.client.render.entity.model.EntityModel.
Текстура Это графические изображения, используемые для придания поверхностям их уникального вида. Они обычно реализуются в виде файлов .PNG размером 16×16 пикселей для блоков и предметов, или в виде более крупных изображений для сущностей и элементов графического интерфейса.
Рендерер(Renderer) Хотя большинство модов используют blockstates и JSON файлы моделей плюс .PNG текстуры для полного представления блоков и предметов и полагаются на механизм рендеринга по умолчанию, чтобы показать их в мире так, как вы ожидаете, но бывают ситуации, когда вам нужно более сложное строение. В этих случаях вам потребуется создать собственный рендерер для достижения желаемого результата. Сущности всегда используют рендереры.
NBT NBT - это формат файлов для хранения данных, используемый в Minecraft. Методы сохранения/загрузки NBT - это то, что вы используете в классе сущности или блочной сущности, чтобы убедиться, что ваши данные сохраняются и загружаются из сохранения мира. Звучит сложно, но это простое дело - переопределить пару методов и поместить туда пару строк кода. Это хорошо описано в разделе “Добавление сущности блока”.
Стороны(Sides) Minecraft состоит из двух частей, клиентской и серверной. Когда вы играете на сервере, разделение очевидно, но серверная часть все еще существует, когда вы играете на своем компьютере. Вы часто увидите, что данный переопределенный метод вызывается и клиентом, и сервером, и чтобы определить, на какой стороне вы отвечаете, вам нужно будет проверить это. Самый простой и распространенный способ - проверка с помощью булевого метода world.isClient(). Более подробное объяснение смотрите в этой статье.
Синхронизация данных(Data sync) Хотя вы можете хранить данные блока на его блочной сущности, такие данные не перемещаются автоматически между сервером и клиентом. Вы должны включить ее самостоятельно с помощью пары строк кода, следуя описанию в разделе “Добавление сущности блока”.
ru/tutorial/concepts.txt · Last modified: 2022/11/02 19:53 by furnygo