55 lines
5.2 KiB
Markdown
55 lines
5.2 KiB
Markdown
# Time Engine — игровые часы, день и ночь, освещение
|
||
|
||
Time Engine ведёт игровые часы и заставляет сцены следовать за ними: одно и то же место утром, в полдень, вечером и ночью выглядит по-разному. Он ещё и подсвечивает сцены лампами и окнами, а после заката даёт вам переносной фонарь. Это мод-движок: его включают игры вроде Cthangover и тайловых RPG, и его работу вы видите в каждой сцене, а не на отдельном экране.
|
||
|
||
## Часы
|
||
|
||
Время показывается в левом верхнем углу экрана. Одна реальная секунда — одна игровая минута, поэтому игровой час проходит за реальную минуту. Некоторые действия тратят игровое время сразу: например, готовка или крафт двигают часы вперёд на время рецепта.
|
||
|
||
Календарь упрощён: месяцы по 30 дней, в году 12 месяцев.
|
||
|
||
## День и ночь
|
||
|
||
Фон каждой сцены рисуется в четырёх состояниях — **утро**, **день**, **вечер** и **ночь**, — и картинка плавно перетекает между ними:
|
||
|
||
```text
|
||
00 ─ ночь ─ 04 ⇢ 06 ─ утро ─ 09 ⇢ 11 ─── день ─── 17 ⇢ 19 ─ вечер ─ 21 ⇢ 22 ── ночь ── 24
|
||
(⇢ — двухчасовое плавное перетекание из одного состояния в другое)
|
||
```
|
||
|
||

|
||
|
||
## Освещение
|
||
|
||
Ночью сцена темна, кроме своих огней. Окна, свечи и лампы светятся там, где их расставил автор сцены, и у каждого огня свой цвет, радиус и сила.
|
||
|
||

|
||
|
||
**Переносной фонарь.** С 22:00 до 06:00 наверху экрана появляется фонарь. Перетащите его на сцену, чтобы осветить место, которое хотите рассмотреть.
|
||
|
||

|
||
|
||
## Авторам
|
||
|
||
**Расставить огни в сцене** можно из её сценария действием `light_set` со списком огней. Позиции задаются долями экрана (от 0 до 1), поэтому подходят любому размеру окна; на сцене — до 10 огней плюс переносной фонарь:
|
||
|
||
```scenario
|
||
light_set [{"x":0.673,"y":0.461,"radius":500,"influence":1,"color":"#ffff00"},{"x":0.135,"y":0.315,"radius":500,"influence":1,"color":"#ffff00"}]
|
||
```
|
||
|
||
- `x`, `y` — позиция как доля ширины и высоты;
|
||
- `radius` — как далеко достаёт свет, в пикселях;
|
||
- `influence` — сила от 0 до 1;
|
||
- `color` — цвет в hex.
|
||
|
||
Пустой `light_set` убирает огни сцены. Редактор света в Editor Tools расставляет их мышью и сам записывает эту строку. Действие сценария `lighting.clear_map` отключает глубинное освещение сцены, когда вы переходите в сцену, которая его не использует.
|
||
|
||
**Фоны, готовые к ночи.** Фон корректно освещается, когда рядом с ним лежит карта глубины — файл с именем картинки и суффиксом `_depth` (например, `bar.png` и `bar_depth.png`). У фона может быть и спутник `_albedo`. Без этих карт огням сцены не на что ложиться.
|
||
|
||
**Другие моды** читают те же часы: тайловая карта RPG живёт по тем же суткам, что и фоны, а смена времени объявляется всем модам каждую игровую минуту.
|
||
|
||
## Если что-то пошло не так
|
||
|
||
1. **Сцена остаётся светлой ночью.** У её фона нет карты глубины, либо сцена не использует суточную подсветку.
|
||
2. **Ночью нет фонаря.** Он появляется только с 22:00 до 06:00 и только в играх, чей интерфейс его включает.
|