Refactor game scripts and update vault scene structure. Enhanced organization of game logic by separating data and rendering responsibilities across multiple scripts. Removed unused background assets and updated vault scene to include new game clock and weather system functionalities.

This commit is contained in:
Leonid Pershin
2026-08-11 10:18:30 +03:00
parent 709776116b
commit a81747781d
48 changed files with 979 additions and 4509 deletions
+28 -7
View File
@@ -57,16 +57,37 @@
## Игровой слой
Три файла в `scripts/game/`, разделены намеренно:
Файлы в `scripts/game/` разделены по принципу «данные и правила отдельно, отрисовка отдельно».
- `vault_grid.gd` — только данные и правила (`RefCounted`, без узлов). Сюда идут изменения
логики: типы комнат, размещение, ресурсы.
- `vault_view.gd`только `_draw()`. Сюда идут изменения картинки. Когда появится графика,
переписывается этот файл, остальные не трогаются.
- `vault_scene.gd` — связка модели, вида, камеры и HUD плюс контракт сохранения.
Модель и правила — без узлов и без `_draw()`:
- `vault_grid.gd`сетка и комнаты. Сюда идут типы комнат, размещение, ресурсы.
Вертикальное смещение бункера под землю — константа `DEPTH`, её учитывают и
`cell_rect()`, и `cell_at()`, поэтому картинка и попадание мышью не разъезжаются.
- `game_clock.gd` — игровые дата и время, скорость, своя пауза. Такт наружу — сигнал
`minute_passed`; темп задаётся `MINUTES_PER_SECOND`.
- `weather_system.gd` — тип погоды, матрица переходов и плавная смена параметров.
Такт берёт у часов, поэтому стоит вместе с паузой.
- `sky_cycle.gd` — палитра неба по часу суток, положение солнца и луны. Чистые вычисления.
Отрисовка — только `_draw()`, читают модель и ничего не решают:
- `sky_view.gd` — градиент неба, звёзды, светила.
- `surface_view.gd` — поверхность: горы, холмы, деревья, облака, осадки.
- `vault_view.gd` — разрез: порода, корпус, шахта, комнаты, будка входа.
`vault_scene.gd` связывает всё это с камерой и HUD и держит контракт сохранения.
Новый тип комнаты добавляется одной записью в `VaultGrid.KINDS`: кнопка в панели строительства
и подсчёт ресурсов подхватятся сами.
и подсчёт ресурсов подхватятся сами. Новый тип погоды — записью в `WeatherSystem.KINDS`
плюс строкой в `TRANSITIONS`.
### Текстуры фона
`background/` — набор Kenney Background Elements. Два стиля, и они не взаимозаменяемы:
`PNG/Flat/*` — бледные, почти белые силуэты, их место на дальних планах, где цвет всё равно
задаётся тонировкой; `PNG/*` — цветные спрайты для ближнего плана. Перепутать легко: деревья
из Flat на переднем плане выглядят выцветшими.
## Автозагрузки