🇷🇺 Русский (Russian)
🇷🇺 Русский (Russian)
Внешний вид
🇷🇺 Русский (Russian)
🇷🇺 Русский (Russian)
Внешний вид
This page is written for version:
1.21
This page is written for version:
1.21
На этой странице будет рассмотрена структура проекта Fabric мода, и назначение каждого файла и папки в проекте.
fabric.mod.json
Файл fabric.mod.json
- это главный файл который описывает ваш мод загрузчику Fabric. Он содержит такую информацию как идентификатор мода, версию и зависимости.
Важнейшие поля в файле fabric.mod.json
:
id
: Идентификатор мода (должен быть уникальным).name
: Название мода.environment
: Среда выполнения которую запускает ваш мод, например client
, server
, или *
для обоих.entrypoints
: Точки входа вашего мода, например main
или client
.depends
: Зависимости вашего мода.mixins
: Миксины, которые предоставляет ваш мод.Ниже вы можете увидеть пример файла fabric.mod.json
, этот файл fabric.mod.json
для примерного проекта, лежащего в основе этого сайта документации.
fabric.mod.json
{
"schemaVersion": 1,
"id": "fabric-docs-reference",
"version": "1.0.0",
"name": "Fabric docs reference",
"icon": "assets/fabric-docs-reference/icon.png",
"environment": "*",
"entrypoints": {
"main": [
"com.example.docs.FabricDocsReference",
"com.example.docs.event.FabricDocsReferenceEvents",
"com.example.docs.command.FabricDocsReferenceCommands",
"com.example.docs.effect.FabricDocsReferenceEffects",
"com.example.docs.potion.FabricDocsReferencePotions",
"com.example.docs.sound.FabricDocsReferenceSounds",
"com.example.docs.damage.FabricDocsReferenceDamageTypes",
"com.example.docs.item.FabricDocsReferenceItems",
"com.example.docs.block.FabricDocsReferenceBlocks",
"com.example.docs.component.FabricDocsReferenceComponents"
],
"client": [
"com.example.docs.FabricDocsReferenceClient",
"com.example.docs.client.command.FabricDocsReferenceClientCommands"
],
"fabric-datagen": [
"com.example.docs.FabricDocsReferenceDataGenerator",
"com.example.docs.damage.FabricDocsReferenceDamageTypesDataGenerator"
]
},
"mixins": [
"fabric-docs-reference.mixins.json",
{
"config": "fabric-docs-reference.client.mixins.json",
"environment": "client"
}
],
"depends": {}
}
Как упоминалось ранее, файл fabric.mod.json
имеет внутри поле entrypoint
, это поле используется для указания точек входа, которые предоставляет ваш мод.
Создатель шаблонов создает обе точки входа main
и client
по умолчанию, точка входа main
используется для общего кода, а точка входа client
используется для клиентоориентированного кода. Эти точки входа вызывается, когда игра запускается.
public class FabricDocsReference implements ModInitializer {
// This logger is used to write text to the console and the log file.
// It is considered best practice to use your mod id as the logger's name.
// That way, it's clear which mod wrote info, warnings, and errors.
public static final String MOD_ID = "fabric-docs-reference";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
@Override
public void onInitialize() {
// This code runs as soon as Minecraft is in a mod-load-ready state.
// However, some things (like resources) may still be uninitialized.
// Proceed with mild caution.
LOGGER.info("Hello Fabric world!");
}
}
Выше приведён пример простой точки входа main
, который записывает сообщение в консоль, когда игра запускается.
src/main/resources
Папка src/main/resources
используется для хранения ресурсов которые использует ваш мод, например текстуры, модели, и звуки.
Это так же папка хранения fabric.mod.json
и все файлы конфигурации, которые использует ваш мод.
Ресурсы хранятся в структуре, которые отражают структуру пакетов ресурсов, например, текстуре блока будет храниться в assets/modid/textures/block/block.png
.
src/client/resources
Папка src/client/resources
используется для хранения клиентоориентированных ресурсов.
src/main/java
Папка src/main/java
используется для хранения исходного кода вашего мода, она существует на клиентской так и на серверной среде.
src/client/java
Папка src/client/java
используется для хранения клиентоориентированного исходного кода, например код рендеринга или логика на стороне клиента - например предоставляемый цвет блока.