🇷🇺 Русский (Russian)
🇷🇺 Русский (Russian)
Внешний вид
🇷🇺 Русский (Russian)
🇷🇺 Русский (Russian)
Внешний вид
Страница написана для версии игры:
1.21.10
На этой странице будет рассмотрена структура проекта 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": "example-mod",
"version": "1.0.0",
"name": "Example Mod",
"icon": "assets/example-mod/icon.png",
"environment": "*",
"entrypoints": {
"main": [
"com.example.docs.ExampleMod",
"com.example.docs.event.ExampleModEvents",
"com.example.docs.command.ExampleModCommands",
"com.example.docs.effect.ExampleModEffects",
"com.example.docs.potion.ExampleModPotions",
"com.example.docs.sound.ExampleModSounds",
"com.example.docs.damage.ExampleModDamageTypes",
"com.example.docs.item.ExampleModItems",
"com.example.docs.enchantment.ExampleModEnchantments",
"com.example.docs.block.ExampleModBlocks",
"com.example.docs.block.entity.ExampleModBlockEntities",
"com.example.docs.component.ExampleModComponents",
"com.example.docs.advancement.ExampleModDatagenAdvancement",
"com.example.docs.networking.ExampleModNetworking",
"com.example.docs.networking.basic.ExampleModNetworkingBasic",
"com.example.docs.debug.ExampleModDebug"
],
"client": [
"com.example.docs.client.command.ExampleModClientCommands",
"com.example.docs.ExampleModBlockEntityRenderer",
"com.example.docs.ExampleModDynamicSound",
"com.example.docs.ExampleModClient",
"com.example.docs.rendering.CustomRenderPipeline",
"com.example.docs.rendering.HudRenderingEntrypoint",
"com.example.docs.rendering.RenderingConceptsEntrypoint",
"com.example.docs.network.basic.ExampleModNetworkingBasicClient"
],
"fabric-datagen": [
"com.example.docs.datagen.ExampleModDataGenerator"
]
},
"mixins": [
"example-mod.mixins.json",
{
"config": "example-mod.client.mixins.json",
"environment": "client"
}
],
"depends": {}
}Как упоминалось ранее, файл fabric.mod.json имеет внутри поле entrypoint, это поле используется для указания точек входа, которые предоставляет ваш мод.
Генератор шаблонных модов по умолчанию создает как main, так и client точку входа:
main используется для общего кода и содержится в классе, реализующем ModInitializerclient используется для кода, специфичного для клиента, и ее класс реализует ClientModInitializerЭти точки входа вызывается, когда игра запускается.
Вот пример простой main точки входа этих логов, которая записывает сообщение на консоль при запуске игры:
public class ExampleMod 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 = "example-mod";
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!");
}
}src/main/resources Папка src/main/resources используется для хранения ресурсов которые использует ваш мод, например текстуры, модели, и звуки.
Это так же папка хранения fabric.mod.json и все файлы конфигурации, которые использует ваш мод.
Ассеты хранятся в структуре, которая отражает структуру пакетов ресурсов — например, текстура для блока будет храниться в assets/example-mod/textures/block/block.png.
src/client/resources Папка src/client/resources используется для хранения клиентоориентированных ресурсов.
src/main/java Папка src/main/java используется для хранения исходного кода вашего мода, она существует на клиентской так и на серверной среде.
src/client/java Папка src/client/java используется для хранения клиентоориентированного исходного кода, например код рендеринга или логика на стороне клиента - например предоставляемый цвет блока.