diff --git a/docs/assets/day-cycle.jpg b/docs/assets/day-cycle.jpg new file mode 100644 index 0000000..5de61db Binary files /dev/null and b/docs/assets/day-cycle.jpg differ diff --git a/docs/assets/kitchen-lights.jpg b/docs/assets/kitchen-lights.jpg new file mode 100644 index 0000000..8418d79 Binary files /dev/null and b/docs/assets/kitchen-lights.jpg differ diff --git a/docs/assets/night.jpg b/docs/assets/night.jpg new file mode 100644 index 0000000..02ba8b3 Binary files /dev/null and b/docs/assets/night.jpg differ diff --git a/docs/en.md b/docs/en.md new file mode 100644 index 0000000..b491e69 --- /dev/null +++ b/docs/en.md @@ -0,0 +1,54 @@ +# Time Engine — the game clock, day and night, lights + +Time Engine runs the in-game clock and makes scenes follow it: the same place looks different in the morning, at noon, in the evening and at night. It also lights scenes with lamps and windows and gives you a portable lamp after dark. It is an engine mod: games such as Cthangover and the tile-map RPGs include it, and you see its work in every scene rather than as a screen of its own. + +## The clock + +The time is shown in the top-left corner of the screen. One real second is one game minute, so a game hour passes in a real minute. Some actions take game time at once — for example, cooking or crafting moves the clock forward by the recipe's time. + +The calendar is simplified: 30-day months and 12 months a year. + +## Day and night + +Every scene background is drawn in four moods — **morning**, **day**, **evening** and **night** — and the picture blends smoothly between them: + +```text +00 ─── night ─── 04 ⇢ 06 ─ morning ─ 09 ⇢ 11 ──── day ──── 17 ⇢ 19 ─ evening ─ 21 ⇢ 22 ─── night ─── 24 + (⇢ = a two-hour cross-fade from one mood to the next) +``` + +![The same scene, the mill outside the villa in Cthangover, at 07:00, 13:00, 18:00 and 23:30: warm morning, bright noon, the evening fade, and night with lit windows.](assets/day-cycle.jpg) + +## Lights + +At night a scene is dark except for its lights. Windows, candles and lamps glow where the scene's author placed them, and each light has its own colour, radius and strength. + +![Night outside the villa at 23:33: only the windows glow; the lantern icon at the top of the screen is the portable lamp.](assets/night.jpg) + +**The portable lamp.** From 22:00 to 06:00 a lantern appears at the top of the screen. Drag it onto the scene to light the spot you want to look at. + +![The kitchen in Cthangover, lit by its candle and lamp.](assets/kitchen-lights.jpg) + +## For authors + +**Place lights in a scene** from its scenario with `light_set` and a list of lights. Positions are fractions of the screen (0 to 1), so they fit any window size; up to 10 lights per scene, plus the portable lamp: + +```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` — position as a fraction of the width and height; +- `radius` — how far the light reaches, in pixels; +- `influence` — strength from 0 to 1; +- `color` — a hex colour. + +An empty `light_set` removes the scene's lights. The light editor of Editor Tools places them with the mouse and writes this line for you. The `lighting.clear_map` scenario action turns off a scene's depth lighting when you switch to a scene that does not use it. + +**Night-aware backgrounds.** A background lights correctly when it has a depth map next to it, named like the picture with `_depth` (for example `bar.png` and `bar_depth.png`). A background can also have an `_albedo` companion. Without these maps, scene lights have no shape to shine on. + +**Other mods** read the same clock: the RPG tile map follows the same day as the backgrounds, and the time's change is announced to every mod once a game minute. + +## If something goes wrong + +1. **A scene stays bright at night.** Its background has no depth map, or the scene does not use time-of-day shading. +2. **No lantern at night.** It appears only from 22:00 to 06:00 and only in games whose interface includes it. diff --git a/docs/es.md b/docs/es.md new file mode 100644 index 0000000..6fe728c --- /dev/null +++ b/docs/es.md @@ -0,0 +1,54 @@ +# Time Engine — el reloj del juego, el día y la noche, las luces + +Time Engine lleva el reloj del juego y hace que las escenas lo sigan: un mismo lugar se ve distinto por la mañana, al mediodía, por la tarde y de noche. Además ilumina las escenas con lámparas y ventanas, y al anochecer te da una lámpara portátil. Es un mod de motor: lo incluyen juegos como Cthangover y los RPG de tiles, y su trabajo se ve en cada escena, no en una pantalla propia. + +## El reloj + +La hora se muestra en la esquina superior izquierda de la pantalla. Un segundo real es un minuto del juego, así que una hora de juego pasa en un minuto real. Algunas acciones consumen tiempo de juego al instante: por ejemplo, cocinar o fabricar adelanta el reloj lo que dura la receta. + +El calendario es simplificado: meses de 30 días y 12 meses al año. + +## El día y la noche + +El fondo de cada escena se dibuja en cuatro estados — **mañana**, **día**, **tarde** y **noche** — y la imagen pasa suavemente de uno a otro: + +```text +00 ─ noche ─ 04 ⇢ 06 ─ mañana ─ 09 ⇢ 11 ─── día ─── 17 ⇢ 19 ─ tarde ─ 21 ⇢ 22 ─ noche ─ 24 + (⇢ = un fundido de dos horas de un estado al siguiente) +``` + +![La misma escena, el molino junto a la villa en Cthangover, a las 07:00, 13:00, 18:00 y 23:30: mañana cálida, mediodía brillante, el declinar de la tarde y la noche con ventanas encendidas.](assets/day-cycle.jpg) + +## Las luces + +De noche una escena está oscura salvo por sus luces. Ventanas, velas y lámparas brillan donde las puso el autor de la escena, y cada luz tiene su color, radio e intensidad. + +![Noche junto a la villa a las 23:33: solo brillan las ventanas; el icono del farol arriba de la pantalla es la lámpara portátil.](assets/night.jpg) + +**La lámpara portátil.** De 22:00 a 06:00 aparece un farol en la parte superior de la pantalla. Arrástralo sobre la escena para iluminar el punto que quieras mirar. + +![La cocina de Cthangover, iluminada por su vela y su lámpara.](assets/kitchen-lights.jpg) + +## Para autores + +**Colocar luces en una escena** se hace desde su escenario con `light_set` y una lista de luces. Las posiciones son fracciones de la pantalla (de 0 a 1), así que encajan en cualquier tamaño de ventana; hasta 10 luces por escena, más la lámpara portátil: + +```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` — posición como fracción del ancho y el alto; +- `radius` — hasta dónde llega la luz, en píxeles; +- `influence` — intensidad de 0 a 1; +- `color` — un color en hexadecimal. + +Un `light_set` vacío quita las luces de la escena. El editor de luces de Editor Tools las coloca con el ratón y te escribe esta línea. La acción de escenario `lighting.clear_map` apaga la iluminación por profundidad de una escena cuando pasas a una escena que no la usa. + +**Fondos que conocen la noche.** Un fondo se ilumina correctamente cuando tiene al lado un mapa de profundidad, llamado como la imagen con `_depth` (por ejemplo `bar.png` y `bar_depth.png`). Un fondo también puede tener un acompañante `_albedo`. Sin estos mapas, las luces de la escena no tienen forma sobre la que brillar. + +**Otros mods** leen el mismo reloj: el mapa de tiles del RPG sigue el mismo día que los fondos, y el cambio de hora se anuncia a todos los mods una vez por minuto de juego. + +## Si algo falla + +1. **Una escena sigue clara de noche.** Su fondo no tiene mapa de profundidad, o la escena no usa sombreado según la hora. +2. **No hay farol de noche.** Aparece solo de 22:00 a 06:00 y solo en los juegos cuya interfaz lo incluye. diff --git a/docs/ja.md b/docs/ja.md new file mode 100644 index 0000000..b702c0e --- /dev/null +++ b/docs/ja.md @@ -0,0 +1,54 @@ +# Time Engine — ゲーム内時計と昼夜、ライティング + +Time Engine はゲーム内の時計を動かし、シーンをそれに追従させます。同じ場所でも朝、正午、夕方、夜で見え方が変わります。さらにランプや窓でシーンを照らし、日が暮れると携帯ランプを差し出します。エンジン MOD なので、Cthangover やタイルマップの RPG などのゲームに含まれ、その働きは専用の画面ではなく、あらゆるシーンの中に現れます。 + +## 時計 + +時刻は画面の左上に表示されます。現実の 1 秒がゲーム内の 1 分なので、ゲーム内の 1 時間は現実の 1 分で過ぎます。一部のアクションはすぐにゲーム内時間を消費します。たとえば料理や制作は、レシピの時間ぶん時計を進めます。 + +暦は簡略化されています。1 か月 30 日、1 年 12 か月です。 + +## 昼と夜 + +シーンの背景は **朝**、**昼**、**夕方**、**夜** の四つの状態で描かれ、絵はその間を滑らかにつなぎます: + +```text +00 ─ 夜 ─ 04 ⇢ 06 ─ 朝 ─ 09 ⇢ 11 ─── 昼 ─── 17 ⇢ 19 ─ 夕方 ─ 21 ⇢ 22 ── 夜 ── 24 + (⇢ = ある状態から次の状態への 2 時間のクロスフェード) +``` + +![同じシーン、Cthangover の邸宅の外にある製粉所を 07:00、13:00、18:00、23:30 に:温かい朝、明るい正午、夕方のフェード、そして窓の灯る夜。](assets/day-cycle.jpg) + +## ライティング + +夜のシーンは、その明かりを除いて暗くなります。窓、ろうそく、ランプはシーン作者が置いた場所で光り、一つ一つの光に色・半径・強さがあります。 + +![23:33 の邸宅の外:光るのは窓だけ。画面上部のランタンアイコンが携帯ランプです。](assets/night.jpg) + +**携帯ランプ。** 22:00 から 06:00 の間、画面の上にランタンが現れます。シーンへドラッグすると、見たい場所を照らせます。 + +![Cthangover の台所。ろうそくとランプに照らされています。](assets/kitchen-lights.jpg) + +## 作者向け + +**シーンに光を置く**には、シナリオから `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` — 16 進の色。 + +空の `light_set` はシーンの光を取り除きます。Editor Tools のライトエディターはマウスで配置し、この行を代わりに書いてくれます。`lighting.clear_map` シナリオアクションは、深度ライティングを使わないシーンへ切り替えるとき、そのライティングを消します。 + +**夜に対応した背景。** 背景が正しく照らされるのは、画像と同じ名前に `_depth` を付けた深度マップが隣にあるときです(たとえば `bar.png` と `bar_depth.png`)。背景には `_albedo` の相棒が付くこともあります。これらのマップがないと、シーンの光は照らすべき形を持ちません。 + +**他の MOD** も同じ時計を読みます。RPG のタイルマップは背景と同じ一日を共有し、時刻の変化はゲーム内 1 分ごとに全 MOD へ伝わります。 + +## うまく動かないとき + +1. **夜なのにシーンが明るいまま。** 背景に深度マップがないか、シーンが時刻の色調を使っていません。 +2. **夜にランタンがない。** 22:00 から 06:00 のだけで、しかもインターフェースがそれを含むゲームでしか現れません。 diff --git a/docs/ko.md b/docs/ko.md new file mode 100644 index 0000000..536d55a --- /dev/null +++ b/docs/ko.md @@ -0,0 +1,54 @@ +# Time Engine — 게임 내 시계, 낮과 밤, 조명 + +Time Engine은 게임 내 시계를 돌리고 장면이 그것을 따르게 합니다. 같은 장소도 아침, 정오, 저녁, 밤에 각각 다르게 보입니다. 또한 램프와 창문으로 장면을 밝히고, 해가 진 뒤에는 휴대용 랜턴을 내줍니다. 엔진 모드이므로 Cthangover나 타일 맵 RPG 같은 게임에 들어 있으며, 그 작업은 별도의 화면이 아니라 모든 장면에서 드러납니다. + +## 시계 + +시간은 화면 왼쪽 위에 표시됩니다. 현실의 1초가 게임 속 1분이므로, 게임 속 한 시간은 현실의 1분으로 지나갑니다. 일부 행동은 게임 시간을 곧바로 소모합니다. 예컨대 요리나 제작은 레시피에 걸리는 시간만큼 시계를 앞으로 돌립니다. + +달력은 단순화되어 있습니다. 한 달 30일, 일 년 열두 달입니다. + +## 낮과 밤 + +장면 배경은 **아침**, **낮**, **저녁**, **밤** 네 가지 상태로 그려지며, 그림이 그 사이를 부드럽게 넘어갑니다: + +```text +00 ─ 밤 ─ 04 ⇢ 06 ─ 아침 ─ 09 ⇢ 11 ─── 낮 ─── 17 ⇢ 19 ─ 저녁 ─ 21 ⇢ 22 ── 밤 ── 24 + (⇢ = 한 상태에서 다음 상태로 넘어가는 2시간 크로스페이드) +``` + +![같은 장면, Cthangover 별장 밖의 제분소를 07:00, 13:00, 18:00, 23:30에: 따뜻한 아침, 밝은 정오, 저녁으로 물드는 시간, 창문이 밝은 밤.](assets/day-cycle.jpg) + +## 조명 + +밤의 장면은 제 조명을 제외하면 어둡습니다. 창문, 촛불, 램프는 장면 제작자가 놓은 자리에서 빛나며, 각 조명은 저마다의 색과 반경, 세기를 갖습니다. + +![23:33의 별장 밖: 창문만 빛납니다. 화면 위쪽의 랜턴 아이콘이 휴대용 랜턴입니다.](assets/night.jpg) + +**휴대용 랜턴.** 22:00부터 06:00까지 화면 위쪽에 랜턴이 나타납니다. 장면 위로 끌어다 놓으면 보고 싶은 곳을 밝힐 수 있습니다. + +![Cthangover의 부엌. 촛불과 램프에 밝혀져 있습니다.](assets/kitchen-lights.jpg) + +## 제작자를 위해 + +**장면에 조명 놓기** — 장면 시나리오에서 `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` — 16진수 색. + +빈 `light_set`은 장면의 조명을 치웁니다. Editor Tools의 조명 편집기는 마우스로 배치하고 이 줄을 대신 써 줍니다. `lighting.clear_map` 시나리오 액션은 깊이 조명을 쓰지 않는 장면으로 넘어갈 때 그 조명을 끕니다. + +**밤을 아는 배경.** 배경이 올바르게 밝혀지려면 그림 이름에 `_depth`를 붙인 깊이 맵이 곁에 있어야 합니다(예: `bar.png`와 `bar_depth.png`). 배경에는 `_albedo` 짝이 붙을 수도 있습니다. 이런 맵이 없으면 장면의 조명이 비출 모양이 없습니다. + +**다른 모드**도 같은 시계를 읽습니다. RPG 타일 맵은 배경과 같은 하루를 따르고, 시간의 변화는 게임 내 1분마다 모든 모드에 알려집니다. + +## 문제가 생겼을 때 + +1. **밤인데 장면이 계속 밝다.** 배경에 깊이 맵이 없거나, 장면이 시간대 색조를 쓰지 않는 것입니다. +2. **밤에 랜턴이 없다.** 22:00부터 06:00까지만, 그리고 인터페이스에 들어 있는 게임에서만 나타납니다. diff --git a/docs/ru.md b/docs/ru.md new file mode 100644 index 0000000..17882bd --- /dev/null +++ b/docs/ru.md @@ -0,0 +1,54 @@ +# Time Engine — игровые часы, день и ночь, освещение + +Time Engine ведёт игровые часы и заставляет сцены следовать за ними: одно и то же место утром, в полдень, вечером и ночью выглядит по-разному. Он ещё и подсвечивает сцены лампами и окнами, а после заката даёт вам переносной фонарь. Это мод-движок: его включают игры вроде Cthangover и тайловых RPG, и его работу вы видите в каждой сцене, а не на отдельном экране. + +## Часы + +Время показывается в левом верхнем углу экрана. Одна реальная секунда — одна игровая минута, поэтому игровой час проходит за реальную минуту. Некоторые действия тратят игровое время сразу: например, готовка или крафт двигают часы вперёд на время рецепта. + +Календарь упрощён: месяцы по 30 дней, в году 12 месяцев. + +## День и ночь + +Фон каждой сцены рисуется в четырёх состояниях — **утро**, **день**, **вечер** и **ночь**, — и картинка плавно перетекает между ними: + +```text +00 ─ ночь ─ 04 ⇢ 06 ─ утро ─ 09 ⇢ 11 ─── день ─── 17 ⇢ 19 ─ вечер ─ 21 ⇢ 22 ── ночь ── 24 + (⇢ — двухчасовое плавное перетекание из одного состояния в другое) +``` + +![Та же сцена — мельница у виллы в Cthangover — в 07:00, 13:00, 18:00 и 23:30: тёплое утро, яркий полдень, вечернее затухание и ночь с горящими окнами.](assets/day-cycle.jpg) + +## Освещение + +Ночью сцена темна, кроме своих огней. Окна, свечи и лампы светятся там, где их расставил автор сцены, и у каждого огня свой цвет, радиус и сила. + +![Ночь у виллы в 23:33: светятся только окна; иконка фонаря наверху экрана — переносной фонарь.](assets/night.jpg) + +**Переносной фонарь.** С 22:00 до 06:00 наверху экрана появляется фонарь. Перетащите его на сцену, чтобы осветить место, которое хотите рассмотреть. + +![Кухня в Cthangover, освещённая свечой и лампой.](assets/kitchen-lights.jpg) + +## Авторам + +**Расставить огни в сцене** можно из её сценария действием `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 и только в играх, чей интерфейс его включает. diff --git a/docs/vi.md b/docs/vi.md new file mode 100644 index 0000000..bca6f10 --- /dev/null +++ b/docs/vi.md @@ -0,0 +1,54 @@ +# Time Engine — đồng hồ trong game, ngày đêm và ánh sáng + +Time Engine vận hành đồng hồ trong game và khiến các cảnh đi theo nó: cùng một địa điểm nhưng sáng, trưa, chiều và đêm trông khác nhau. Nó còn thắp sáng cảnh bằng đèn và cửa sổ, và sau khi trời tối đưa cho bạn một chiếc đèn cầm tay. Đây là mod engine: các game như Cthangover và các game RPG tile đều có nó, và thành quả của nó hiện ra trong từng cảnh thay vì trên một màn hình riêng. + +## Đồng hồ + +Thời gian hiển thị ở góc trên bên trái màn hình. Một giây thực tế bằng một phút trong game, nên một giờ trong game trôi qua trong một phút thực tế. Một số hành động tốn thời gian game ngay lập tức — ví dụ nấu ăn hay chế tạo sẽ đưa đồng hồ tiến lên đúng bằng thời gian của công thức. + +Lịch được đơn giản hóa: tháng 30 ngày, một năm 12 tháng. + +## Ngày và đêm + +Nền của mỗi cảnh được vẽ theo bốn trạng thái — **buổi sáng**, **ban ngày**, **buổi chiều** và **ban đêm** — và bức tranh chuyển mượt giữa chúng: + +```text +00 ─ đêm ─ 04 ⇢ 06 ─ sáng ─ 09 ⇢ 11 ─── ngày ─── 17 ⇢ 19 ─ chiều ─ 21 ⇢ 22 ── đêm ── 24 + (⇢ = khoảng hòa trộn hai giờ từ trạng thái này sang trạng thái kế tiếp) +``` + +![Cùng một cảnh — cối xay ngoài biệt thự trong Cthangover — lúc 07:00, 13:00, 18:00 và 23:30: buổi sáng ấm áp, trưa rực rỡ, buổi chiều nhuốm tối, và đêm với những ô cửa sáng đèn.](assets/day-cycle.jpg) + +## Ánh sáng + +Ban đêm cảnh tối trừ những đèn của nó. Cửa sổ, nến và đèn tỏa sáng đúng chỗ tác giả cảnh đặt chúng, và mỗi ngọn đèn có màu sắc, bán kính, cường độ riêng. + +![Đêm ngoài biệt thự lúc 23:33: chỉ có cửa sổ sáng; biểu tượng đèn lồng phía trên màn hình chính là đèn cầm tay.](assets/night.jpg) + +**Đèn cầm tay.** Từ 22:00 đến 06:00, một chiếc đèn lồng xuất hiện phía trên màn hình. Kéo nó ra giữa cảnh để soi vào chỗ bạn muốn nhìn. + +![Căn bếp trong Cthangover, được nến và đèn chiếu sáng.](assets/kitchen-lights.jpg) + +## Cho tác giả + +**Đặt đèn vào một cảnh** từ kịch bản của cảnh bằng `light_set` cùng danh sách đèn. Vị trí tính theo tỉ lệ màn hình (0 đến 1) nên vừa với mọi kích thước cửa sổ; tối đa 10 đèn mỗi cảnh, chưa kể đèn cầm tay: + +```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` — vị trí theo tỉ lệ chiều rộng và chiều cao; +- `radius` — ánh sáng vươn xa đến đâu, tính bằng pixel; +- `influence` — cường độ từ 0 đến 1; +- `color` — màu dạng hex. + +`light_set` rỗng xóa hết đèn của cảnh. Trình soạn đèn của Editor Tools đặt chúng bằng chuột và viết sẵn dòng lệnh này cho bạn. Hành động kịch bản `lighting.clear_map` tắt ánh sáng theo chiều sâu của một cảnh khi bạn chuyển sang cảnh không dùng nó. + +**Nền biết đêm.** Nền được chiếu sáng đúng cách khi cạnh nó có một bản đồ chiều sâu, đặt tên trùng hình ảnh kèm `_depth` (ví dụ `bar.png` và `bar_depth.png`). Nền cũng có thể kèm thêm một bản `_albedo`. Thiếu các bản đồ này, đèn trong cảnh không có hình dáng nào để đổ sáng lên. + +**Các mod khác** cùng đọc một chiếc đồng hồ: bản đồ tile của RPG đi theo cùng một ngày với các nền, và cứ mỗi phút trong game, sự thay đổi thời gian lại được báo cho mọi mod. + +## Khi có trục trặc + +1. **Cảnh vẫn sáng vào ban đêm.** Nền của nó không có bản đồ chiều sâu, hoặc cảnh không dùng sắc màu theo thời gian. +2. **Không có đèn lồng vào ban đêm.** Nó chỉ xuất hiện từ 22:00 đến 06:00 và chỉ trong những game có giao diện chứa nó. diff --git a/docs/zh.md b/docs/zh.md new file mode 100644 index 0000000..3c94c0b --- /dev/null +++ b/docs/zh.md @@ -0,0 +1,54 @@ +# Time Engine — 游戏时钟、昼夜与灯光 + +Time Engine 驱动游戏内时钟,并让场景随之变化:同一个地方在清晨、正午、傍晚和深夜看起来都不一样。它还用灯和窗户为场景打光,天黑之后还给你一盏便携提灯。这是一个引擎模组:Cthangover 和图块 RPG 等游戏都包含它,它的成果体现在每一幕场景中,而不是某个独立界面上。 + +## 时钟 + +时间显示在屏幕左上角。现实中的一秒是游戏里的一分钟,因此游戏里的一小时在现实中只需一分钟。有些动作会立刻消耗游戏时间——例如烹饪或制作会按配方所需时间把时钟往前拨。 + +日历做了简化:每月 30 天,一年 12 个月。 + +## 白昼与黑夜 + +每个场景的背景都绘有四种状态——**清晨**、**白天**、**傍晚**和**深夜**——画面会在它们之间平滑过渡: + +```text +00 ─ 夜晚 ─ 04 ⇢ 06 ─ 清晨 ─ 09 ⇢ 11 ─── 白天 ─── 17 ⇢ 19 ─ 傍晚 ─ 21 ⇢ 22 ── 夜晚 ── 24 + (⇢ = 两种状态之间两小时的渐变过渡) +``` + +![同一场景——Cthangover 中别墅外的磨坊——在 07:00、13:00、18:00 和 23:30:温暖的清晨、明亮的正午、傍晚的暮色,以及亮起窗户的深夜。](assets/day-cycle.jpg) + +## 灯光 + +夜晚的场景除灯光外一片漆黑。窗户、蜡烛和灯在场景作者安放的位置发光,每盏灯都有自己的颜色、半径和强度。 + +![23:33 的别墅外:只有窗户亮着;屏幕顶部的提灯图标就是便携提灯。](assets/night.jpg) + +**便携提灯。** 从 22:00 到 06:00,屏幕上方会出现一盏提灯。把它拖到场景上,就能照亮你想细看的地方。 + +![Cthangover 的厨房,被烛光和灯光照亮。](assets/kitchen-lights.jpg) + +## 给作者 + +**在场景里布灯**通过该场景剧本中的 `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` — 十六进制颜色。 + +空的 `light_set` 会移除场景的灯。Editor Tools 的灯光编辑器用鼠标布灯,并替你写好这行命令。当你切换到不使用深度光照的场景时,`lighting.clear_map` 场景动作会把上一幕的深度光照关掉。 + +**适配夜色的背景。** 背景要正确受光,需要旁边有一张深度图,命名方式是在图片名后加 `_depth`(例如 `bar.png` 和 `bar_depth.png`)。背景还可以带一张 `_albedo` 伴生图。没有这些图,场景灯光就没有可以附着的外形。 + +**其他模组**也读同一座时钟:RPG 图块地图与背景共用同一天,时间变化每游戏分钟向所有模组广播一次。 + +## 出现问题时 + +1. **场景在深夜依然明亮。** 它的背景没有深度图,或者场景没有使用随时间变化的色调。 +2. **夜里没有提灯。** 它只在 22:00 到 06:00 出现,而且只在界面包含它的游戏里出现。 diff --git a/locale/en.properties b/locale/en.properties index 1255743..5a8a6cf 100644 --- a/locale/en.properties +++ b/locale/en.properties @@ -1,2 +1,2 @@ mod_time_base_name = Time Engine -mod_time_base_desc = Engine time subsystem: the in-game clock tick controller, the clock HUD widget, the 2D lighting stack (UiLightController, LampBehaviour, LightDef) and the lighting.clear_map scenario action. +mod_time_base_desc = The in-game clock, day and night: scenes change their look with the time, lamps and windows light them, and a portable lamp helps after dark. diff --git a/locale/es.properties b/locale/es.properties index 89d5fee..9ff0bf1 100644 --- a/locale/es.properties +++ b/locale/es.properties @@ -1,2 +1,2 @@ mod_time_base_name = Motor del tiempo -mod_time_base_desc = Subsistema del tiempo del motor: el controlador del reloj del juego, el widget del reloj en el HUD, la pila de iluminación 2D (UiLightController, LampBehaviour, LightDef) y la acción de escenario lighting.clear_map. +mod_time_base_desc = El reloj del juego, el día y la noche: las escenas cambian de aspecto con la hora, lámparas y ventanas las iluminan, y una lámpara portátil ayuda al caer la noche. diff --git a/locale/ja.properties b/locale/ja.properties index 1af57e7..0ae7b3c 100644 --- a/locale/ja.properties +++ b/locale/ja.properties @@ -1,2 +1,2 @@ mod_time_base_name = 時間エンジン -mod_time_base_desc = エンジンの時間サブシステム:ゲーム内時計のコントローラー、HUD の時計ウィジェット、2D ライティング(UiLightController、LampBehaviour、LightDef)、シナリオアクション lighting.clear_map。 +mod_time_base_desc = ゲーム内時計と昼夜:シーンは時刻で見た目を変え、ランプや窓が照らし、日暮れ後は携帯ランプが助けになります。 diff --git a/locale/ko.properties b/locale/ko.properties index 715639d..0429867 100644 --- a/locale/ko.properties +++ b/locale/ko.properties @@ -1,2 +1,2 @@ mod_time_base_name = 시간 엔진 -mod_time_base_desc = 엔진 시간 하위 시스템: 게임 내 시계 컨트롤러, HUD 시계 위젯, 2D 조명 스택(UiLightController, LampBehaviour, LightDef), lighting.clear_map 시나리오 액션. +mod_time_base_desc = 게임 내 시계와 낮밤: 장면은 시간에 따라 모습이 바뀌고, 램프와 창문이 비추며, 해 진 뒤에는 휴대용 랜턴이 도와줍니다. diff --git a/locale/ru.properties b/locale/ru.properties index 1ee3d10..70226d9 100644 --- a/locale/ru.properties +++ b/locale/ru.properties @@ -1,2 +1,2 @@ mod_time_base_name = Движок времени -mod_time_base_desc = Подсистема игрового времени: контроллер тиков часов, HUD-виджет часов, стек 2D-освещения (UiLightController, LampBehaviour, LightDef) и сценарное действие lighting.clear_map. +mod_time_base_desc = Игровые часы, день и ночь: сцены меняют вид со временем, их освещают лампы и окна, а после заката помогает переносной фонарь. diff --git a/locale/vi.properties b/locale/vi.properties index 6a0dbd1..b77f701 100644 --- a/locale/vi.properties +++ b/locale/vi.properties @@ -1,2 +1,2 @@ mod_time_base_name = Engine thời gian -mod_time_base_desc = Hệ thống con thời gian của engine: bộ điều khiển đồng hồ trong game, widget đồng hồ trên HUD, ngăn xếp chiếu sáng 2D (UiLightController, LampBehaviour, LightDef) và hành động kịch bản lighting.clear_map. +mod_time_base_desc = Đồng hồ trong game, ngày và đêm: cảnh thay đổi diện mạo theo giờ, đèn và cửa sổ chiếu sáng chúng, và đèn cầm tay trợ giúp sau khi trời tối. diff --git a/locale/zh.properties b/locale/zh.properties index e10263e..c7efff6 100644 --- a/locale/zh.properties +++ b/locale/zh.properties @@ -1,2 +1,2 @@ mod_time_base_name = 时间引擎 -mod_time_base_desc = 引擎时间子系统:游戏内时钟控制器、HUD 时钟组件、2D 光照栈(UiLightController、LampBehaviour、LightDef)以及 lighting.clear_map 剧本动作。 +mod_time_base_desc = 游戏内时钟与昼夜:场景随时间改变外观,灯与窗户为其照明,天黑后还有便携提灯帮忙。 diff --git a/manifest.json b/manifest.json index 9c44b4d..67a8e21 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "Time Engine", "version": "1.0.0", "author": "ct", - "description": "Engine time subsystem: the in-game clock tick controller bridging SceneEventController timer pulses to RuntimeData.Time, the clock HUD widget, the 2D lighting stack (UiLightController, LampBehaviour, LightDef) installed into the kernel through LightingBridge, and the lighting.clear_map scenario action. Replaces the former Core/Settings/TimeTickController, Core/UI/Lights, Core/UI/Tool/TimeController and Core/Actions/LightingServiceImpl.", + "description": "The in-game clock, day and night: scenes change their look with the time, lamps and windows light them, and a portable lamp helps after dark.", "category": "engine, library", "sources": [ "src/**/*.cs"