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
root: ../..
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:
- /en/chapters/folders.html
- /en/basics/folders.html
- /ru/chapters/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
and create your first mod.
При создании модов очень важно понимать структуру проекта мода. В этой главе
вы узнаете как работает моддинг в Minetest и создадите свой первый мод.
- [What are Games and Mods?](#what-are-games-and-mods)
- [Where are mods stored?](#where-are-mods-stored)
- [Creating your first mod](#creating-your-first-mod)
- [Mod directory](#mod-directory)
- [Что такое Игры и что такое Моды?](#what-are-games-and-mods)
- [Где хранятся моды?](#where-are-mods-stored)
- [Создание первого мода](#creating-your-first-mod)
- [Директория](#mod-directory)
- [mod.conf](#modconf)
- [init.lua](#initlua)
- [Summary](#summary)
- [Dependencies](#dependencies)
- [Mod Packs](#mod-packs)
- [Итого](#summary)
- [Зависимости](#dependencies)
- [Модпаки](#mod-packs)
## What are Games and Mods?
## Что такое Игры и что такое Моды?
The power of Minetest is the ability to easily develop games without the need
to create your own voxel graphics, voxel algorithms, or fancy networking code.
Сила Minetest — в возможности легко создавать игры без необходимости создания
собственной воксельной графики, воксельных алгоритмов или крутого сетевого
кода.
In Minetest, a game is a collection of modules which work together to provide the
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.
В Minetest Игра — это набор модулей, работающих вместе и создающих контент и
игровую механику.
Модуль (или мод) — это набор скриптов и материалов.
Конечно, можно создать игру только из одного мода, но такое встречается редко,
ведь так труднее настраивать и заменять отдельные элементы игры, не затрагивая
всё остальное.
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,
and is applicable for both game developers and modders.
В этой книге описаны основы Minetest API, и она подходит как для разработчиков
игр, так и для моддеров.
## Where are mods stored?
## Где хранятся моды?
<a name="mod-locations"></a>
Each mod has its own directory where its Lua code, textures, models, and
sounds are placed. Minetest checks in several different locations for
mods. These locations are commonly called *mod load paths*.
У каждого мода есть своя директория, в которой лежат Lua-код, текстуры,
модели и звуки. Minetest ищет моды в нескольких определённых папках.
В документации эти папки обозначаются как *mod load paths*.
For a given world/save game, three mod locations are checked.
They are, in order:
Для каждой созданной карты или сохранённой игры Minetest ищет моды в трёх
местах в следующем порядке:
1. Game mods. These are the mods that form the game that the world is running.
Eg: `minetest/games/minetest_game/mods/`, `/usr/share/minetest/games/minetest/`
2. Global mods, the location to which mods are nearly always installed to.
If in doubt, place them here.
Eg: `minetest/mods/`
3. World mods, the location to store mods which are specific to a
particular world.
Eg: `minetest/worlds/world/worldmods/`
1. Моды Игры: Эти моды являются неотъемлимой частью Игры.
Папки: `minetest/games/minetest_game/mods/`, `/usr/share/minetest/games/minetest/`
2. Глобальные моды: место куда почти всегда устанавливаются моды.
Если не уверены, кладите их сюда.
Папка: `minetest/mods/`
3. Моды Мира: эти моды относятся к конкретной созданной карте.
Папка: `minetest/worlds/world/worldmods/`
`minetest` is the user-data directory. You can find the location of the
user-data directory by opening up Minetest and clicking
"Open User Data Directory" in the Credits tab.
`minetest` — это директория для пользовательских фалов. Чтобы её найти,
запустите Minetest и нажмите "Папка данных пользователя" на вкладке
"Подробней".
When loading mods, Minetest will check each of the above locations in order.
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.
Во время загрузки модов Minetest проверяет по порядку каждое из перечисленных
расположений. Если он обнаружит несколько модов с одинаковым именем, то мод,
найденный позже, заменит собой предыдущий. Таким образом можно подменять моды
игры, помещая мод с таким же названием в папку Глобальных модов.
## Creating your first mod
## Создание первого мода
### Mod directory
### Директория
Go to the global mods directory (About > Open user data directory > mods) and
create a new folder called "mymod". `mymod` is the mod name.
Перейдите в глобальную папку модов (Подробней > Папка данных пользователя > mods)
и создайте новую папку под названием "mymod". `mymod` — это имя мода.
Each mod should have a unique *mod name*, a technical identifier (id) used to
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).
У каждого мода должно быть уникальное *имя*, технический идентификатор (id),
по которому можно ссылаться на этот мод. Имя мода может состоять из букв, цифр
и подчёркиваний. Хорошее имя даёт представление о том, что делает мод.
Директория, в которой лежат компоненты мода, должна иметь такое же имя.
Моды можно искать по их имени на сайте [content.minetest.net](https://content.minetest.net).
mymod
├── textures
│   └── mymod_node.png files
│   └── mymod_node.png
├── init.lua
└── mod.conf
Mods only require an init.lua file;
however, mod.conf is recommended and other components may be needed
depending on the mod's functionality.
Обязательным является только файл init.lua. Тем не менее, рекомендуется
добавлять файл mod.conf и другие компоненты в зависимости от функционала мода.
### mod.conf
Create a mod.conf file with the following content:
Создайте файл mod.conf следующего содержания:
```
name = mymod
@ -112,12 +110,11 @@ description = Adds foo, bar, and bo.
depends = default
```
This file is used for mod metadata including the mod's name, description, and other
information.
Этот файл содержит мета-данные мода, такие как имя, описание и прочее.
### init.lua
Create an init.lua file with the following content:
Создайте файл init.lua следующего содержания:
```lua
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
script prints a message and then registers a node and a craft recipe these
will be explained later on. There's a single dependency, the
[default mod](https://content.minetest.net/metapackages/default/), which is
usually found in Minetest Game. There is also a texture in textures/ for the
node.
Этот мод носит имя "mymod". Он содержит два текстовых файла: init.lua
и mod.conf. Скрипт выводит сообщение, а затем регистрирует новый рецепт крафта
(об этом будет написано дальше). У этого мода указана единственная зависимость
от [мода default](https://content.minetest.net/metapackages/default/), который,
обычно, является частью Minetest Game. Также есть текстура для блока в папке
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
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
├── modpack.conf (required) - signals that this is a mod pack
├── modpack.conf (обязательный) — обозначает, что это модпак
├── mod1
│   └── ... mod files
│   └── ... файлы мода
└── 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.
Не нужно путать модпак и *Игру*.
У Игры есть собственная структура, которая будет описана в главе Игры.