Remove unused assets and update project configuration. Deleted obsolete files including CLAUDE.md, README.md, default_bus_layout.tres, and various background images. Updated .editorconfig and .gitignore for improved project organization and asset management.

This commit is contained in:
Leonid Pershin
2026-08-12 09:44:32 +03:00
parent 2429e75967
commit 4c98764680
274 changed files with 13 additions and 10005 deletions
-125
View File
@@ -1,125 +0,0 @@
# G-WORLD
Двумерная игра с видом сбоку на Godot 4.7. Референс по подаче и структуре — **Fallout Shelter**:
разрез убежища, комнаты в сетке, жители, которых расселяют по этажам, и мир, реагирующий на
решения игрока.
> Статус: ранняя альфа. Готов каркас меню и первый игровой слой — сетка комнат в разрезе.
---
## Что уже работает
| Часть | Файл | Что умеет |
|---|---|---|
| Убежище | `scenes/game/vault.tscn` | разрез на 6 этажей, лифтовая шахта, строительство и снос комнат, сводка ресурсов |
| Главное меню | `scenes/ui/main_menu.tscn` | анимированный фон на шейдере, появление по стаггеру, единая подсветка для мыши и клавиатуры |
| Настройки | `scenes/ui/settings_menu.tscn` | видео, звук, переназначение клавиш; сохраняется в `user://settings.cfg` |
| Пауза | `scenes/ui/pause_menu.tscn` | останавливает дерево, переиспользует экраны настроек и сохранений |
| Сохранения | `scenes/ui/save_menu.tscn` | 6 слотов с миниатюрами, датой и наигранным временем, запись/чтение/удаление |
Экраны настроек и сохранений — отдельные сцены, вложенные инстансами и в главное меню, и в паузу.
Дублирования нет: правка в одном месте видна везде.
## Игровой слой
Убежище разделено на три части, чтобы графику можно было заменить, не трогая логику:
- **`vault_grid.gd`** (`VaultGrid`) — модель: сетка 9×6, список комнат, правила размещения,
баланс ресурсов, сериализация. Ни одного узла, ни одной отрисовки.
- **`vault_view.gd`** (`VaultView`) — весь `_draw()`: небо, порода, шахта, комнаты, призрак
строительства. Пока рисуется процедурно — ассетов нет. Появится графика — меняется только
этот файл.
- **`vault_scene.gd`** — связывает модель, вид, камеру и HUD, реализует контракт сохранения.
Управление: **ЛКМ** — построить или снести, **ПКМ/СКМ** — тащить вид, **колесо** — зум,
**WASD / стрелки** — прокрутка, **Esc** — пауза.
Типы комнат и их баланс ресурсов заданы одним словарём `VaultGrid.KINDS` — новый тип добавляется
одной записью, кнопка в панели строительства и подсчёт ресурсов подхватываются сами.
## Требования
- **Godot 4.7** (Forward+, .NET-сборка не обязательна — код на GDScript)
- Windows / Linux / macOS
## Запуск
Откройте папку проекта в Godot и нажмите F5 — главная сцена уже прописана
(`res://scenes/ui/main_menu.tscn`).
## Структура
```
scenes/
ui/ main_menu, settings_menu, pause_menu, save_menu
game/ vault.tscn — убежище
scripts/
autoload/ game_settings.gd, save_manager.gd
ui/ по скрипту на экран
game/ vault_grid.gd, vault_view.gd, vault_camera.gd, vault_scene.gd
shaders/ menu_background.gdshader + материал
themes/ main_menu.theme.tres — единая тема всех экранов
default_bus_layout.tres — шины микшера: Master → Music, SFX
```
## Соглашения
**Тема.** Все экраны наследуют `themes/main_menu.theme.tres`. Цвета не прописываются в узлах:
акцент `#2ee6c5`, второй акцент `#7b6bf5`, текст `#dbe7f0`, приглушённый `#8fa5ba`.
Локальные `theme_override_*` — только там, где элемент должен отличаться намеренно.
**Язык.** Интерфейс и комментарии — русские, имена узлов, файлов и методов — английские.
**Автозагрузки.**
- `GameSettings` (`GameSettingsService`) — настройки: чтение, применение к движку, `user://settings.cfg`
- `SaveManager` (`SaveManagerService`) — слоты сохранений в `user://saves/`
У обеих есть `class_name`: константы и типы берутся через него, экземпляр — через
`get_node("/root/GameSettings")`. Так редактор резолвит имена без перезапуска проекта.
**Контракт игровой сцены.** Чтобы сцена умела сохраняться:
```gdscript
func _ready() -> void:
add_to_group(SaveManagerService.PERSIST_GROUP)
SaveManager.begin_session(scene_file_path)
func save_data() -> Dictionary:
return {"...": ...}
func load_data(data: Dictionary) -> void:
...
```
`SaveManager` обходит группу `persistent`, собирает словари по путям узлов и пишет JSON.
Миниатюра слота — кадр, снятый в момент вызова паузы, до показа оверлея.
**Действия ввода** (`project.godot` → Input Map): `move_left`, `move_right`, `move_up`,
`move_down` (прокрутка камеры), `interact`, `pause`. Переназначаются в настройках; список
в UI строится из `GameSettingsService.ACTION_LABELS`, так что новое действие нужно добавить
и туда.
**Рендерер** — Forward+ (по умолчанию). Для чистой 2D он избыточен, но оставляет запас на
3D-вставки и продвинутый пост-процессинг. Если понадобится максимальная лёгкость и веб-экспорт,
осмысленный переход — не Mobile, а Compatibility (OpenGL); смена требует перезапуска редактора.
**Слияния.** `.tscn` и `.tres` — текстовые, но построчный авто-мердж по ним даёт мусор.
Конфликтующие сцены лучше разрешать, открывая обе версии в редакторе, а не в diff-вьювере.
## Что дальше
- [x] Игровой слой на 2D: сетка комнат в разрезе, вид сбоку
- [ ] Жители: найм, характеристики, расселение по комнатам
- [ ] Время и производство: ресурсы должны копиться, а не только считаться в сводке
- [ ] Слияние одинаковых соседних комнат, как в референсе
- [ ] Стоимость строительства и ограничение по ресурсам
- [ ] Графика вместо процедурной отрисовки в `vault_view.gd`
- [ ] Звук: подключить шины Music и SFX
- [ ] Лицензия не выбрана
## Лицензия
Не определена. Плагин `addons/godot_ai` поставляется со своей лицензией — см.
`addons/godot_ai/LICENSE`.