> ## Documentation Index
> Fetch the complete documentation index at: https://coolcars.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Компоненты (components.yml)

> Настройка визуальной составляющей, моделей и интерактивных элементов автомобиля.

Файл `components.yml` отвечает за то, как ваша машина выглядит в игре и как игрок с ней взаимодействует. Здесь настраиваются 3D-модели, места для сидения, свет фар и интерфейс багажника.

## Модели и визуализация (`models`)

CoolCars использует систему `CustomModelData` для отображения 3D-моделей. Вы можете назначить разные модели для кузова, колес и руля.

```yaml theme={null}
models:
  body-material: IRON_INGOT
  body-custom-model-data: 1
  # Модель кузова с включенными фарами (опционально)
  body-material-headlights: IRON_INGOT
  body-material-headlights-custom-model-data: 1
  wheel-material: IRON_INGOT
  wheel-custom-model-data: 2
  steering-wheel-material: IRON_INGOT
  steering-wheel-custom-model-data: 3
```

***

## Смещение элементов (`visual`)

Чтобы 3D-модели стояли ровно там, где нужно, используются оффсеты (смещения). Координаты указываются относительно центральной точки машины.

* **body-offset**: Поднимает или опускает кузов. Обычно `y: 1.05` — это стандарт для того, чтобы машина не "тонула" в земле.
* **wheel-offsets**: Список из 4-х точек для колес.
* **steering-wheel-offset**: Положение руля. Он будет вращаться при повороте машины.

### Схема разметки оффсетов

Для правильной настройки используйте следующую нумерацию точек (вид сверху):

<Frame caption="Схема расположения компонентов и оффсетов">
  <img src="https://mintcdn.com/coolcars/QoXtKOorMvt8sk6O/images/coolcars/offsets-layout.png?fit=max&auto=format&n=QoXtKOorMvt8sk6O&q=85&s=63d867bf6a692691ac194747855e8d13" width="1563" height="811" data-path="images/coolcars/offsets-layout.png" />
</Frame>

| №     | Компонент           | Описание                                                  |
| :---- | :------------------ | :-------------------------------------------------------- |
| **1** | **Корпус**          | Основная модель машины (`body-offset`).                   |
| **2** | **Руль**            | Точка вращения рулевого колеса (`steering-wheel-offset`). |
| **3** | **Переднее левое**  | Первое колесо в списке `wheel-offsets`.                   |
| **4** | **Переднее правое** | Второе колесо в списке `wheel-offsets`.                   |
| **5** | **Заднее левое**    | Третье колесо в списке `wheel-offsets`.                   |
| **6** | **Заднее правое**   | Четвертое колесо в списке `wheel-offsets`.                |

***

## Свет фар (`lights`)

Система освещения в CoolCars позволяет создавать реалистичный свет, который освещает путь перед машиной в ночное время.

<Frame caption="Демонстрация работы фар и освещения дороги">
  <img src="https://mintcdn.com/coolcars/jS-IQKaY5GufZlF3/images/coolcars/headlights-showcase.png?fit=max&auto=format&n=jS-IQKaY5GufZlF3&q=85&s=dc973a770acb2f7941fe7374ae6963b5" width="1323" height="741" data-path="images/coolcars/headlights-showcase.png" />
</Frame>

```yaml theme={null}
lights:
  headlight-offsets:
    - x: -0.46  # Левая фара
      y: 0.78
      z: 1.72
    - x: 0.46   # Правая фара
      y: 0.78
      z: 1.72
  range: 12.0   # Дальность света (в блоках)
  level: 15     # Яркость (0-15)
  update-ticks: 2
  visible-effects: false
```

### Как работают фары:

1. **Источник света:** Плагин создает невидимые источники света в точках, указанных в `headlight-offsets`.
2. **Смена модели:** При включении фар модель кузова может меняться на ту, что указана в `body-material-headlights`. Это позволяет сделать эффект "светящихся" текстур фар в вашем ресурспаке.
3. **Дальность и яркость:** Параметр `range` определяет, на сколько блоков вперед будет падать свет, а `level` — насколько ярким он будет (максимум 15).

<Tip>
  Если вы хотите, чтобы фары выглядели реалистично, настройте в ресурспаке модель для `body-material-headlights` с использованием `emissive` текстур (светящихся в темноте).
</Tip>

***

## Посадочные места (`seats`)

Секция `seats` определяет, где будут сидеть игроки.

<Tip>
  Первое место в списке всегда считается местом **водителя**. Только водитель может управлять машиной.
</Tip>

```yaml theme={null}
seats:
  offsets:
    - x: 0.70   # Водитель
      y: -0.10
      z: 0.45
    - x: -0.55  # Пассажир
      y: -0.10
      z: 0.54
```

***

## Выхлопная система (`exhaust`)

Создает частицы дыма из выхлопных труб.

* **offsets**: Точки появления дыма (можно настроить для каждой трубы отдельно).
* **base-count**: Количество частиц на холостом ходу.
* **max-count**: Количество частиц при полном газе.

***

## Меню управления (`menu`)

Когда игрок нажимает кнопку взаимодействия, открывается GUI. Вы можете полностью настроить его внешний вид.

<Frame caption="Пример кастомизированного меню управления">
  <img src="https://mintcdn.com/coolcars/jS-IQKaY5GufZlF3/images/coolcars/menu-preview.png?fit=max&auto=format&n=jS-IQKaY5GufZlF3&q=85&s=b522062e8de56522783bf67904bd7b28" width="687" height="227" data-path="images/coolcars/menu-preview.png" />
</Frame>
