translate basics/getting_started

This commit is contained in:
Andrey Stepanov 2024-11-29 09:57:26 +05:00
parent 283814ef14
commit c3e8ac8405
Signed by: Koldun
GPG Key ID: 53DE683337F5D25F

View File

@ -1,110 +1,108 @@
--- ---
title: Getting Started title: Основы
layout: default layout: default
root: ../.. root: ../..
idx: 1.1 idx: 1.1
description: Learn how to make a mod folder, including init.lua, mod.conf and more. description: Как создать проект мода, включая init.lua, mod.conf и прочее.
redirect_from: redirect_from:
- /en/chapters/folders.html - /ru/chapters/folders.html
- /en/basics/folders.html - /ru/basics/folders.html
--- ---
## Introduction <!-- omit in toc --> ## Введение <!-- omit in toc -->
Understanding the basic structure of a mod's folder is an essential skill when При создании модов очень важно понимать структуру проекта мода. В этой главе
creating mods. In this chapter, you'll learn about how modding in Minetest works вы узнаете как работает моддинг в Minetest и создадите свой первый мод.
and create your first mod.
- [What are Games and Mods?](#what-are-games-and-mods) - [Что такое Игры и что такое Моды?](#what-are-games-and-mods)
- [Where are mods stored?](#where-are-mods-stored) - [Где хранятся моды?](#where-are-mods-stored)
- [Creating your first mod](#creating-your-first-mod) - [Создание первого мода](#creating-your-first-mod)
- [Mod directory](#mod-directory) - [Директория](#mod-directory)
- [mod.conf](#modconf) - [mod.conf](#modconf)
- [init.lua](#initlua) - [init.lua](#initlua)
- [Summary](#summary) - [Итого](#summary)
- [Dependencies](#dependencies) - [Зависимости](#dependencies)
- [Mod Packs](#mod-packs) - [Модпаки](#mod-packs)
## What are Games and Mods? ## Что такое Игры и что такое Моды?
The power of Minetest is the ability to easily develop games without the need Сила Minetest — в возможности легко создавать игры без необходимости создания
to create your own voxel graphics, voxel algorithms, or fancy networking code. собственной воксельной графики, воксельных алгоритмов или крутого сетевого
кода.
In Minetest, a game is a collection of modules which work together to provide the В Minetest Игра — это набор модулей, работающих вместе и создающих контент и
content and behaviour of a game. игровую механику.
A module, commonly known as a mod, is a collection of scripts and resources. Модуль (или мод) — это набор скриптов и материалов.
It's possible to make a game using only one mod, but this is rarely done because it Конечно, можно создать игру только из одного мода, но такое встречается редко,
reduces the ease by which parts of the game can be adjusted and replaced ведь так труднее настраивать и заменять отдельные элементы игры, не затрагивая
independently of others. всё остальное.
It's also possible to distribute mods outside of a game, in which case they Кроме того, вы можете распространять свой мод без привязки к конкретной игре.
are also *mods* in the more traditional sense - modifications. These mods adjust В этом случае он также будет называться *модом* в традиционном смысле —
or extend the features of a game. модификация. Такие моды изменяют или добавляют различные элементы игры.
Both the mods contained in a game and third-party mods use the same API. Как моды в составе игры, так и просто сторонние моды используют один и тот же
API.
This book will cover the main parts of the Minetest API, В этой книге описаны основы Minetest API, и она подходит как для разработчиков
and is applicable for both game developers and modders. игр, так и для моддеров.
## Where are mods stored? ## Где хранятся моды?
<a name="mod-locations"></a> <a name="mod-locations"></a>
Each mod has its own directory where its Lua code, textures, models, and У каждого мода есть своя директория, в которой лежат Lua-код, текстуры,
sounds are placed. Minetest checks in several different locations for модели и звуки. Minetest ищет моды в нескольких определённых папках.
mods. These locations are commonly called *mod load paths*. В документации эти папки обозначаются как *mod load paths*.
For a given world/save game, three mod locations are checked. Для каждой созданной карты или сохранённой игры Minetest ищет моды в трёх
They are, in order: местах в следующем порядке:
1. Game mods. These are the mods that form the game that the world is running. 1. Моды Игры: Эти моды являются неотъемлимой частью Игры.
Eg: `minetest/games/minetest_game/mods/`, `/usr/share/minetest/games/minetest/` Папки: `minetest/games/minetest_game/mods/`, `/usr/share/minetest/games/minetest/`
2. Global mods, the location to which mods are nearly always installed to. 2. Глобальные моды: место куда почти всегда устанавливаются моды.
If in doubt, place them here. Если не уверены, кладите их сюда.
Eg: `minetest/mods/` Папка: `minetest/mods/`
3. World mods, the location to store mods which are specific to a 3. Моды Мира: эти моды относятся к конкретной созданной карте.
particular world. Папка: `minetest/worlds/world/worldmods/`
Eg: `minetest/worlds/world/worldmods/`
`minetest` is the user-data directory. You can find the location of the `minetest` — это директория для пользовательских фалов. Чтобы её найти,
user-data directory by opening up Minetest and clicking запустите Minetest и нажмите "Папка данных пользователя" на вкладке
"Open User Data Directory" in the Credits tab. "Подробней".
When loading mods, Minetest will check each of the above locations in order. Во время загрузки модов Minetest проверяет по порядку каждое из перечисленных
If it encounters a mod with a name the same as one found previously, the later расположений. Если он обнаружит несколько модов с одинаковым именем, то мод,
mod will be loaded in place of the earlier mod. This means that you can override найденный позже, заменит собой предыдущий. Таким образом можно подменять моды
game mods by placing a mod with the same name in the global mod location. игры, помещая мод с таким же названием в папку Глобальных модов.
## Creating your first mod ## Создание первого мода
### Mod directory ### Директория
Go to the global mods directory (About > Open user data directory > mods) and Перейдите в глобальную папку модов (Подробней > Папка данных пользователя > mods)
create a new folder called "mymod". `mymod` is the mod name. и создайте новую папку под названием "mymod". `mymod` — это имя мода.
Each mod should have a unique *mod name*, a technical identifier (id) used to У каждого мода должно быть уникальное *имя*, технический идентификатор (id),
refer to the mod. Mod names can include letters, numbers, and underscores. A по которому можно ссылаться на этот мод. Имя мода может состоять из букв, цифр
good name should describe what the mod does, and the directory that contains и подчёркиваний. Хорошее имя даёт представление о том, что делает мод.
the components of a mod must have the same name as the mod name. To find out if Директория, в которой лежат компоненты мода, должна иметь такое же имя.
a mod name is available, try searching for it on Моды можно искать по их имени на сайте [content.minetest.net](https://content.minetest.net).
[content.minetest.net](https://content.minetest.net).
mymod mymod
├── textures ├── textures
│   └── mymod_node.png files │   └── mymod_node.png
├── init.lua ├── init.lua
└── mod.conf └── mod.conf
Mods only require an init.lua file; Обязательным является только файл init.lua. Тем не менее, рекомендуется
however, mod.conf is recommended and other components may be needed добавлять файл mod.conf и другие компоненты в зависимости от функционала мода.
depending on the mod's functionality.
### mod.conf ### mod.conf
Create a mod.conf file with the following content: Создайте файл mod.conf следующего содержания:
``` ```
name = mymod name = mymod
@ -112,12 +110,11 @@ description = Adds foo, bar, and bo.
depends = default depends = default
``` ```
This file is used for mod metadata including the mod's name, description, and other Этот файл содержит мета-данные мода, такие как имя, описание и прочее.
information.
### init.lua ### init.lua
Create an init.lua file with the following content: Создайте файл init.lua следующего содержания:
```lua ```lua
print("This file will be run at load time!") print("This file will be run at load time!")
@ -135,53 +132,51 @@ core.register_craft({
}) })
``` ```
The init.lua file is the entrypoint to a mod, and runs when the mod is loaded. Файл init.lua запускается при загрузке мода.
### Summary ### Итого
This mod has the name "mymod". It has two text files: init.lua and mod.conf. The Этот мод носит имя "mymod". Он содержит два текстовых файла: init.lua
script prints a message and then registers a node and a craft recipe these и mod.conf. Скрипт выводит сообщение, а затем регистрирует новый рецепт крафта
will be explained later on. There's a single dependency, the (об этом будет написано дальше). У этого мода указана единственная зависимость
[default mod](https://content.minetest.net/metapackages/default/), which is от [мода default](https://content.minetest.net/metapackages/default/), который,
usually found in Minetest Game. There is also a texture in textures/ for the обычно, является частью Minetest Game. Также есть текстура для блока в папке
node. textures/.
## Dependencies ## Зависимости
A dependency occurs when a mod requires another mod to be loaded before itself. Зависимости указываются, если перед загрузкой нода необходимо загрузить другой
One mod may require another mod's code, items, or other resources to be мод. Моду могут потребоваться код, предметы или ещё что-нибудь из другого мода.
available for it to use.
There are two types of dependencies: hard and optional dependencies. Существует два типа зависимостей: жёсткие и необязательные.
Both require the mod to be loaded first. If the mod being depended on isn't В обоих случаях требуемый мод загружается первым. Если требуемый мод
available, a hard dependency will cause the mod to fail to load, while an optional недоступен, жёсткая зависимость не позволит загрузить мод, в то время как
dependency might lead to fewer features being enabled. при необязательной зависимости мод всего лишь потеряет часть функций.
An optional dependency is useful if you want to optionally support another mod; Необязательные зависимости полезны в случаях, когда вы хотите добавить
it can enable extra content if the user wishes to use both the mods at the same поддержку другого мода: например, вы можете добавлять дополнительный контент,
time. если пользователь решит задействовать оба мода одновременно.
Dependencies are specified in a comma-separated list in mod.conf. Несколько зависимостей перечисляются через запятую в файле mod.conf.
depends = modone, modtwo depends = modone, modtwo
optional_depends = modthree optional_depends = modthree
## Mod Packs ## Модпаки
Mods can be grouped into mod packs, which allow multiple mods to be packaged Несколько модов могут быть собраны в модпак, который позволяет распространять
and moved together. They are useful if you want to supply multiple mods to эти моды вместе. Модпак позволяет загрузить и установить несколько модов
a player, but don't want to make them download each one individually. за раз, без необходимости скачивать их по одному.
modpack1 modpack1
├── modpack.conf (required) - signals that this is a mod pack ├── modpack.conf (обязательный) — обозначает, что это модпак
├── mod1 ├── mod1
│   └── ... mod files │   └── ... файлы мода
└── mymod (optional) └── mymod (optional)
   └── ... mod files    └── ... файлы мода
Please note that a modpack is not a *game*. Не нужно путать модпак и *Игру*.
Games have their own organisational structure which will be explained in the У Игры есть собственная структура, которая будет описана в главе Игры.
Games chapter.