> For the complete documentation index, see [llms.txt](https://wiki.aegis-mine.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.aegis-mine.ru/modifications/sozdanie-kontenta/patchouli/multiblochnye-struktury.md).

# Мультиблочные структуры

Подобные дополнения создают особый этап развития в модпаке и добавляют антуража техническим проектам. Итак, чтобы создать свою структуру, Вам нужно обратиться к соответствующему JSON файлу: `"multiblock": { }`

Здесь мыбираем блоки для своей структуры, и начинаем их вписывать в наш JSON файл.

```json
"multiblock": {
    "mapping": {
        "G": "minecraft:gold_block",
        "R": " minecraft:stained_hardened_clay[color=red]",
        "W": "minecraft:wool"
    }
}
```

**Узор**\
Теперь, когда мы указали, какие блоки использовать в структуре механизма, нам нужно задать ему форму. Для этого мы идем сверху вниз, слой за слоем, и переводим каждый слой из блоков в строки в файле.

Получается как бы вид сбоку по слоям:

<div align="left"><figure><img src="/files/AqLskZnkSQPuiW5GeuBJ" alt=""><figcaption></figcaption></figure></div>

Осталось сделать еще одну последнюю вещь. **Нам нужно указать игре, где находится центр мультиблочной структуры**. Можно подумать, что он находится в центре кода, но в некоторых случаях у Вас могут быть механизмы, которые имеют необычную форму и вид, а их центр находится не ровно по центру или в середине.

**Мы указываем центр, заменяя один из символов** в шаблоне на ноль. По умолчанию ноль сопоставляется с воздухом, но если Вам нужно придать ему другое значение, Вы всегда можете просто поставить "0" в отношении того, с чем Вы собираетесь это сделать.

Идеально подходящее место расположения контролера/центра может выглядеть следующим образом:

<div align="left"><figure><img src="/files/C7pdIIj9pm8VZDb76Pbj" alt=""><figcaption></figcaption></figure></div>

**Несколько дополнительных нюансов**

У мультиблочной структуры может быть еще **несколько разных значений:**

* **symmetrical** (логический) По умолчанию используется значение false. Установите значение true, если механизм симметричен относительно вертикальной оси своего центра. Это не обязательно, но если Вы это сделаете, Patchouli не будет проверять все вращения, так что это лучше оптимизирует игру.
* **offset** (массив int, 3 значения) Массив int из 3 значений (\[X, Y, Z]) для смещения мультиблока относительно его центра. В нашем случае мы установим значение symmetric равным true и не будем указывать offset, поскольку мы уже поставили 0 в нужном месте.

## Итоговый вариант

Давайте сложим наш шаблон, отображение и другие значения вместе, чтобы получить следующий текст в файле настроки:

```json
"multiblock": {
    "pattern": [
        [ " GRG ", "GGRGG", "RRRRR", "GGRGG", " GRG " ], 
        [ "GG GG", "G G", " ", "G G", "GG GG" ],
        [ "G G", " ", " ", " ", "G G" ], 
        [ "G G", " ", " 0 ", " ", "G G" ], 
        [ "_WWW_", "WWWWW", "WWWWW", "WWWWW", "_WWW_" ]
    ],
    "mapping": {
        "G": "minecraft:gold_block",
        "W": "minecraft:wool",
        "R": "minecraft:stained_hardened_clay[color=red]"
    },
    "symmetrical": true
}
```

В самой книге можно отобразить структуру механизма в мире, чтобы посмотреть её и даже заполнить, проверив тем самым, правильно ли мы всё сделали.

<figure><img src="/files/USq7SDGlwP2hftO2G29j" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://wiki.aegis-mine.ru/modifications/sozdanie-kontenta/patchouli/multiblochnye-struktury.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
