# menu

**Тип:** [список](https://docs.lmr.su/books/gaid-po-moddingu/page/spiski "Списки")

Определяет элементы кастомизации главного меню.

Доступные параметры:

- `bg`
- `logos`
- `tracks`

Каждому элементу внутри параметров присваивается ID — целое число, которое определяет порядок выбора элементов (чем меньше число — тем выше приоритет):

```yaml
# resources.yaml
---
  menu:
    bg:
      0:
        # параметры
      1: 
        # параметры
    logos:
      0:
        # параметры
      1:
        # параметры
    tracks:
      0:
        # параметры
      1:
        # параметры
```

Также у каждого элемента может быть задан параметр `condition`, в котором прописывается условие, при котором данный элемент может быть выбран для отображения.

## bg

**Тип:** [список](https://docs.lmr.su/books/gaid-po-moddingu/page/spiski "Списки")

Список фонов для главного меню.

Фон может задаваться одним из двух параметров:

- `asset`
- `name`

  
Первый используется для указания пути конкретного ассета, второй — для указания ID определённого в `resources.yaml` или встроенного в игру фона.

```yaml
# resources.yaml
---
bg:
  bus_stop: bg/bus_stop.jpg # определение фона bus_stop

menu:
  bg:
    0:
      asset: bg/menu_bg.jpg # подгрузка фона из папки bg
    1:
      name: bus_stop # подгрузка фона bus_stop
```

Параметр `asset` принимает следующие типы:

- `texture` — тип по умолчанию
- `sprite`
- `prefab`

  
Также можно в ноде просто указать путь до ассета без указания других параметров, в таком случае это будет равносильно указанию параметра `asset`:

```yaml
# resources.yaml
---
bg:
  bus_stop: bg/bus_stop.jpg # определение фона bus_stop

menu:
  bg:
    0: bg/menu_bg.jpg # подгрузка фона из папки bg
```

### **<span style="font-size: 14pt;">Эффекты постобработки</span>**

<span style="font-size: 14pt;">Помимо описанных выше параметров, нод также может принимать ещё несколько параметров:</span>

- `particles`
- `twirl`
- `noise`
- `blur`

Все эти параметры — булевые переменные, т.е. их значением может быть либо `true`, либо `false`. Они отвечают за включение/отключение соответствующих эффектов пост-обработки фона в главном меню:

```yaml
# resources.yaml
---
  menu:
    bg:
      0:
        name: house_mc_day
        twirl: true
        particles: true
        blur: true
        noise: true
```

<p class="callout info">По умолчанию значения всех параметров — `<strong>true</strong>`.</p>

Также можно задать overlay-цвет для фона при помощи параметра `color`:

```yaml
# resources.yaml
---
  menu:
    bg:
      0: # пример дневной вариации фона из главного меню игры
        name: house_mc_day
        color: "#AC8E0E32"
```

## logos

**Тип:** [список](https://docs.lmr.su/books/gaid-po-moddingu/page/spiski "Списки")

Список логотипов для главного меню.

Изображение логотипа задаётся при помощи параметра `asset`:

```yaml
# resources.yaml
---
menu:
  logos:
    0:
      asset: images/menu_logo.png
```

Также значением `asset` может быть `default` — в таком случае игра будет использовать встроенный логотип LMR:

```yaml
# resources.yaml
---
menu:
  logos:
    0:
      asset: default # будет использован логотип Love, Money, Rock'n'Roll
```

<p class="callout info">Параметр `asset` данного нода — своего рода исключение, которое помимо пути ассета принимает и значение `default`.</p>

Ещё одной особенностью параметра `asset` является возможность указать разные ассеты под разные языки, аналогично синтаксису [языковых нодов](https://docs.lmr.su/books/gaid-po-moddingu/page/iazykovye-nody "Языковые ноды"), только в качестве значения нужно писать путь к ассету:

```yaml
# resources.yaml
---
menu:
  logos:
    0:
      asset:
        ru: images/menu_logo_ru.png
        en: images/menu_logo_en.png
```

Аналогично `bg`, можно указать только путь к ассету, игнорируя остальные параметры:

```yaml
# resources.yaml
---
menu:
  logos:
    0: images/menu_logo.png
    1: default
```

### Положение и размер логотипа

Положение и размер логотипа настраиваются двумя параметрами:

- `position`
- `size`

  
Оба параметра принимают как и ID положения/размера, указанного в `resources.yaml`, так и числовые значения:

```yaml
# resources.yaml
---
sizes:
  logo_normal: 0.8 0.8
positions:
  logo_top: 0 0.25

menu:
  logos:
    0:
      asset: images/menu_logo.png
      position: 0 0.25
      size: 0.8 0.8
    1:
      asset: images/menu_logo.png
      position: logo_top
      size: logo_normal
```

## tracks

**Тип:** [список](https://docs.lmr.su/books/gaid-po-moddingu/page/spiski "Списки")

Фоновые треки для главного меню.

Аналогично нодам `bg`, трек указывается либо через `asset`, либо через `name`. Также можно указать только путь к ассету:

```yaml
# resources.yaml
---
sizes:
  logo_normal: 0.8 0.8
positions:
  logo_top: 0 0.25

menu:
  tracks:
    0:
      asset: sound/menu_track.mp3
    1:
      name: summertime # трек, встроенный в игру    
    2: sound/menu_track.mp3 # аналогично ноду с "0"
```

Параметр `asset` принимает только один вид ассетов — `sound`.

## Условия вывода

Каждый нод фона/лого/трека может иметь параметр `condition`, который отвечает за условие выбора того или иного элемента.

Условие может содержать глобальные и persistent переменные, а также значения [datetime](https://docs.lmr.su/books/komandy-scenariia/page/peremennye#bkmrk-datetime "datetime"):

```yaml
# resources.yaml
---
menu:
  bg: # пример вывода стандартных фонов главного меню в зависимости от времени суток
    0:
      name: house_mc_day
      color: "#AC8E0E32"
      condition: "datetime.hour >= 7 && datetime.hour < 16"
    1:
      name: house_mc_sunset
      color: "#87173E2D"
      condition: "datetime.hour >= 16 && datetime.hour < 22"
    2:
      name: house_mc_night
      color: "#3A00BE3C"
      condition: "datetime.hour >= 22 || datetime.hour < 7"
```

<p class="callout info">Значения глобальных переменных будут браться из continue-сохранения (которое загружается при нажатии "Продолжить" в главном меню).   
  
Если такого нет, будут использованы значения по умолчанию.</p>

## Пустые значения

Если вы хотите не выводить вообще ничего, достаточно в качестве значения для параметра `asset` указать `null`:

```yaml
# resources.yaml
---
menu:
  bg:
    0:
      asset: null # также можно указать как 0: null
  logos:
    0:
      asset: null
  tracks:
    0:
      asset: null
```